
/* A Bison parser, made by GNU Bison 2.4.1.  */

/* Skeleton implementation for Bison's Yacc-like parsers in C
   
      Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
   Free Software Foundation, Inc.
   
   This program is free software: you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation, either version 3 of the License, or
   (at your option) any later version.
   
   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.
   
   You should have received a copy of the GNU General Public License
   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */

/* As a special exception, you may create a larger work that contains
   part or all of the Bison parser skeleton and distribute that work
   under terms of your choice, so long as that work isn't itself a
   parser generator using the skeleton or a modified version thereof
   as a parser skeleton.  Alternatively, if you modify or redistribute
   the parser skeleton itself, you may (at your option) remove this
   special exception, which will cause the skeleton and the resulting
   Bison output files to be licensed under the GNU General Public
   License without this special exception.
   
   This special exception was added by the Free Software Foundation in
   version 2.2 of Bison.  */

/* C LALR(1) parser skeleton written by Richard Stallman, by
   simplifying the original so-called "semantic" parser.  */

/* All symbols defined below should begin with yy or YY, to avoid
   infringing on user name space.  This should be done even for local
   variables, as they might otherwise be expanded by user macros.
   There are some unavoidable exceptions within include files to
   define necessary library symbols; they are noted "INFRINGES ON
   USER NAME SPACE" below.  */

/* Identify Bison output.  */
#define YYBISON 1

/* Bison version.  */
#define YYBISON_VERSION "2.4.1"

/* Skeleton name.  */
#define YYSKELETON_NAME "yacc.c"

/* Pure parsers.  */
#define YYPURE 1

/* Push parsers.  */
#define YYPUSH 0

/* Pull parsers.  */
#define YYPULL 1

/* Using locations.  */
#define YYLSP_NEEDED 0

/* Substitute the variable and function names.  */
#define yyparse         MYSQLparse
#define yylex           MYSQLlex
#define yyerror         MYSQLerror
#define yylval          MYSQLlval
#define yychar          MYSQLchar
#define yydebug         MYSQLdebug
#define yynerrs         MYSQLnerrs


/* Copy the first part of user declarations.  */

/* Line 189 of yacc.c  */
#line 23 "sql_yacc.yy"

/* thd is passed as an argument to yyparse(), and subsequently to yylex().
** The type will be void*, so it must be  cast to (THD*) when used.
** Use the YYTHD macro for this.
*/
#define YYPARSE_PARAM yythd
#define YYLEX_PARAM yythd
#define YYTHD ((THD *)yythd)
#define YYLIP (& YYTHD->m_parser_state->m_lip)

#define MYSQL_YACC
#define YYINITDEPTH 100
#define YYMAXDEPTH 3200                        /* Because of 64K stack */
#define Lex (YYTHD->lex)
#define Select Lex->current_select
#include "mysql_priv.h"
#include "slave.h"
#include "lex_symbol.h"
#include "item_create.h"
#include "sp_head.h"
#include "sp_pcontext.h"
#include "sp_rcontext.h"
#include "sp.h"
#include "event_parse_data.h"
#include <myisam.h>
#include <myisammrg.h>

/* this is to get the bison compilation windows warnings out */
#ifdef _MSC_VER
/* warning C4065: switch statement contains 'default' but no 'case' labels */
#pragma warning (disable : 4065)
#endif

int yylex(void *yylval, void *yythd);

const LEX_STRING null_lex_str= {0,0};

#define yyoverflow(A,B,C,D,E,F)               \
  {                                           \
    ulong val= *(F);                          \
    if (my_yyoverflow((B), (D), &val))        \
    {                                         \
      yyerror((char*) (A));                   \
      return 2;                               \
    }                                         \
    else                                      \
    {                                         \
      *(F)= (YYSIZE_T)val;                    \
    }                                         \
  }

#define MYSQL_YYABORT                         \
  do                                          \
  {                                           \
    LEX::cleanup_lex_after_parse_error(YYTHD);\
    YYABORT;                                  \
  } while (0)

#define MYSQL_YYABORT_UNLESS(A)         \
  if (!(A))                             \
  {                                     \
    my_parse_error(ER(ER_SYNTAX_ERROR));\
    MYSQL_YYABORT;                      \
  }

/*
  Work around for broken code generated by bison 1.875.

  The code generated by bison 1.875a and later, bison 2.1 and bison 2.2 is ok.
  With bison 1.875 however, the generated code contains:
<pre>
  yyerrlab1:
  #if defined (__GNUC_MINOR__) && 2093 <= (__GNUC__ * 1000 + __GNUC_MINOR__)
    __attribute__ ((__unused__))
  #endif
</pre>
  This usage of __attribute__ is illegal, so we remove it.
  See the following references for details:
  http://lists.gnu.org/archive/html/bug-bison/2004-02/msg00014.html
  http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14273
*/

#if defined (__GNUC_MINOR__) && 2093 <= (__GNUC__ * 1000 + __GNUC_MINOR__)
#undef __attribute__
#define __attribute__(X)
#endif


#ifndef DBUG_OFF
#define YYDEBUG 1
#else
#define YYDEBUG 0
#endif

/**
  @brief Push an error message into MySQL error stack with line
  and position information.

  This function provides semantic action implementers with a way
  to push the famous "You have a syntax error near..." error
  message into the error stack, which is normally produced only if
  a parse error is discovered internally by the Bison generated
  parser.
*/

void my_parse_error(const char *s)
{
  THD *thd= current_thd;
  Lex_input_stream *lip= & thd->m_parser_state->m_lip;

  const char *yytext= lip->get_tok_start();
  /* Push an error into the error stack */
  my_printf_error(ER_PARSE_ERROR,  ER(ER_PARSE_ERROR), MYF(0), s,
                  (yytext ? yytext : ""),
                  lip->yylineno);
}

/**
  @brief Bison callback to report a syntax/OOM error

  This function is invoked by the bison-generated parser
  when a syntax error, a parse error or an out-of-memory
  condition occurs. This function is not invoked when the
  parser is requested to abort by semantic action code
  by means of YYABORT or YYACCEPT macros. This is why these
  macros should not be used (use MYSQL_YYABORT/MYSQL_YYACCEPT
  instead).

  The parser will abort immediately after invoking this callback.

  This function is not for use in semantic actions and is internal to
  the parser, as it performs some pre-return cleanup. 
  In semantic actions, please use my_parse_error or my_error to
  push an error into the error stack and MYSQL_YYABORT
  to abort from the parser.
*/

void MYSQLerror(const char *s)
{
  THD *thd= current_thd;

  /*
    Restore the original LEX if it was replaced when parsing
    a stored procedure. We must ensure that a parsing error
    does not leave any side effects in the THD.
  */
  LEX::cleanup_lex_after_parse_error(thd);

  /* "parse error" changed into "syntax error" between bison 1.75 and 1.875 */
  if (strcmp(s,"parse error") == 0 || strcmp(s,"syntax error") == 0)
    s= ER(ER_SYNTAX_ERROR);
  my_parse_error(s);
}


#ifndef DBUG_OFF
void turn_parser_debug_on()
{
  /*
     MYSQLdebug is in sql/sql_yacc.cc, in bison generated code.
     Turning this option on is **VERY** verbose, and should be
     used when investigating a syntax error problem only.

     The syntax to run with bison traces is as follows :
     - Starting a server manually :
       mysqld --debug="d,parser_debug" ...
     - Running a test :
       mysql-test-run.pl --mysqld="--debug=d,parser_debug" ...

     The result will be in the process stderr (var/log/master.err)
   */

  extern int yydebug;
  yydebug= 1;
}
#endif

static bool is_native_function(THD *thd, const LEX_STRING *name)
{
  if (find_native_function_builder(thd, *name))
    return true;

  if (is_lex_native_function(name))
    return true;

  return false;
}


/**
  Helper action for a case statement (entering the CASE).
  This helper is used for both 'simple' and 'searched' cases.
  This helper, with the other case_stmt_action_..., is executed when
  the following SQL code is parsed:
<pre>
CREATE PROCEDURE proc_19194_simple(i int)
BEGIN
  DECLARE str CHAR(10);

  CASE i
    WHEN 1 THEN SET str="1";
    WHEN 2 THEN SET str="2";
    WHEN 3 THEN SET str="3";
    ELSE SET str="unknown";
  END CASE;

  SELECT str;
END
</pre>
  The actions are used to generate the following code:
<pre>
SHOW PROCEDURE CODE proc_19194_simple;
Pos     Instruction
0       set str@1 NULL
1       set_case_expr (12) 0 i@0
2       jump_if_not 5(12) (case_expr@0 = 1)
3       set str@1 _latin1'1'
4       jump 12
5       jump_if_not 8(12) (case_expr@0 = 2)
6       set str@1 _latin1'2'
7       jump 12
8       jump_if_not 11(12) (case_expr@0 = 3)
9       set str@1 _latin1'3'
10      jump 12
11      set str@1 _latin1'unknown'
12      stmt 0 "SELECT str"
</pre>

  @param lex the parser lex context
*/

void case_stmt_action_case(LEX *lex)
{
  lex->sphead->new_cont_backpatch(NULL);

  /*
    BACKPATCH: Creating target label for the jump to
    "case_stmt_action_end_case"
    (Instruction 12 in the example)
  */

  lex->spcont->push_label((char *)"", lex->sphead->instructions());
}

/**
  Helper action for a case expression statement (the expr in 'CASE expr').
  This helper is used for 'searched' cases only.
  @param lex the parser lex context
  @param expr the parsed expression
  @return 0 on success
*/

int case_stmt_action_expr(LEX *lex, Item* expr)
{
  sp_head *sp= lex->sphead;
  sp_pcontext *parsing_ctx= lex->spcont;
  int case_expr_id= parsing_ctx->register_case_expr();
  sp_instr_set_case_expr *i;

  if (parsing_ctx->push_case_expr_id(case_expr_id))
    return 1;

  i= new sp_instr_set_case_expr(sp->instructions(),
                                parsing_ctx, case_expr_id, expr, lex);

  sp->add_cont_backpatch(i);
  return sp->add_instr(i);
}

/**
  Helper action for a case when condition.
  This helper is used for both 'simple' and 'searched' cases.
  @param lex the parser lex context
  @param when the parsed expression for the WHEN clause
  @param simple true for simple cases, false for searched cases
*/

int case_stmt_action_when(LEX *lex, Item *when, bool simple)
{
  sp_head *sp= lex->sphead;
  sp_pcontext *ctx= lex->spcont;
  uint ip= sp->instructions();
  sp_instr_jump_if_not *i;
  Item_case_expr *var;
  Item *expr;

  if (simple)
  {
    var= new Item_case_expr(ctx->get_current_case_expr_id());

#ifndef DBUG_OFF
    if (var)
    {
      var->m_sp= sp;
    }
#endif

    expr= new Item_func_eq(var, when);
    i= new sp_instr_jump_if_not(ip, ctx, expr, lex);
  }
  else
    i= new sp_instr_jump_if_not(ip, ctx, when, lex);

  /*
    BACKPATCH: Registering forward jump from
    "case_stmt_action_when" to "case_stmt_action_then"
    (jump_if_not from instruction 2 to 5, 5 to 8 ... in the example)
  */

  return !test(i) ||
         sp->push_backpatch(i, ctx->push_label((char *)"", 0)) ||
         sp->add_cont_backpatch(i) ||
         sp->add_instr(i);
}

/**
  Helper action for a case then statements.
  This helper is used for both 'simple' and 'searched' cases.
  @param lex the parser lex context
*/

int case_stmt_action_then(LEX *lex)
{
  sp_head *sp= lex->sphead;
  sp_pcontext *ctx= lex->spcont;
  uint ip= sp->instructions();
  sp_instr_jump *i = new sp_instr_jump(ip, ctx);
  if (!test(i) || sp->add_instr(i))
    return 1;

  /*
    BACKPATCH: Resolving forward jump from
    "case_stmt_action_when" to "case_stmt_action_then"
    (jump_if_not from instruction 2 to 5, 5 to 8 ... in the example)
  */

  sp->backpatch(ctx->pop_label());

  /*
    BACKPATCH: Registering forward jump from
    "case_stmt_action_then" to "case_stmt_action_end_case"
    (jump from instruction 4 to 12, 7 to 12 ... in the example)
  */

  return sp->push_backpatch(i, ctx->last_label());
}

/**
  Helper action for an end case.
  This helper is used for both 'simple' and 'searched' cases.
  @param lex the parser lex context
  @param simple true for simple cases, false for searched cases
*/

void case_stmt_action_end_case(LEX *lex, bool simple)
{
  /*
    BACKPATCH: Resolving forward jump from
    "case_stmt_action_then" to "case_stmt_action_end_case"
    (jump from instruction 4 to 12, 7 to 12 ... in the example)
  */
  lex->sphead->backpatch(lex->spcont->pop_label());

  if (simple)
    lex->spcont->pop_case_expr_id();

  lex->sphead->do_cont_backpatch();
}


static bool
find_sys_var_null_base(THD *thd, struct sys_var_with_base *tmp)
{
  tmp->var= find_sys_var(thd, tmp->base_name.str, tmp->base_name.length);

  if (tmp->var == NULL)
    my_error(ER_UNKNOWN_SYSTEM_VARIABLE, MYF(0), tmp->base_name.str);
  else
    tmp->base_name= null_lex_str;

  return thd->is_error();
}


/**
  Helper action for a SET statement.
  Used to push a system variable into the assignment list.

  @param thd      the current thread
  @param tmp      the system variable with base name
  @param var_type the scope of the variable
  @param val      the value being assigned to the variable

  @return TRUE if error, FALSE otherwise.
*/

static bool
set_system_variable(THD *thd, struct sys_var_with_base *tmp,
                    enum enum_var_type var_type, Item *val)
{
  set_var *var;
  LEX *lex= thd->lex;

  /* No AUTOCOMMIT from a stored function or trigger. */
  if (lex->spcont && tmp->var == &sys_autocommit)
    lex->sphead->m_flags|= sp_head::HAS_SET_AUTOCOMMIT_STMT;

  if (! (var= new set_var(var_type, tmp->var, &tmp->base_name, val)))
    return TRUE;

  return lex->var_list.push_back(var);
}


/**
  Helper action for a SET statement.
  Used to push a SP local variable into the assignment list.

  @param thd      the current thread
  @param var_type the SP local variable
  @param val      the value being assigned to the variable

  @return TRUE if error, FALSE otherwise.
*/

static bool
set_local_variable(THD *thd, sp_variable_t *spv, Item *val)
{
  Item *it;
  LEX *lex= thd->lex;
  sp_instr_set *sp_set;

  if (val)
    it= val;
  else if (spv->dflt)
    it= spv->dflt;
  else
  {
    it= new (thd->mem_root) Item_null();
    if (it == NULL)
      return TRUE;
  }

  sp_set= new sp_instr_set(lex->sphead->instructions(), lex->spcont,
                           spv->offset, it, spv->type, lex, TRUE);

  return (sp_set == NULL || lex->sphead->add_instr(sp_set));
}


/**
  Helper action for a SET statement.
  Used to SET a field of NEW row.

  @param thd      the current thread
  @param name     the field name
  @param val      the value being assigned to the row

  @return TRUE if error, FALSE otherwise.
*/

static bool
set_trigger_new_row(THD *thd, LEX_STRING *name, Item *val)
{
  LEX *lex= thd->lex;
  Item_trigger_field *trg_fld;
  sp_instr_set_trigger_field *sp_fld;

  /* QQ: Shouldn't this be field's default value ? */
  if (! val)
    val= new Item_null();

  DBUG_ASSERT(lex->trg_chistics.action_time == TRG_ACTION_BEFORE &&
              (lex->trg_chistics.event == TRG_EVENT_INSERT ||
               lex->trg_chistics.event == TRG_EVENT_UPDATE));

  trg_fld= new (thd->mem_root)
            Item_trigger_field(lex->current_context(),
                               Item_trigger_field::NEW_ROW,
                               name->str, UPDATE_ACL, FALSE);

  if (trg_fld == NULL)
    return TRUE;

  sp_fld= new sp_instr_set_trigger_field(lex->sphead->instructions(),
                                         lex->spcont, trg_fld, val, lex);

  if (sp_fld == NULL)
    return TRUE;

  /*
    Let us add this item to list of all Item_trigger_field
    objects in trigger.
  */
  lex->trg_table_fields.link_in_list(trg_fld, &trg_fld->next_trg_field);

  return lex->sphead->add_instr(sp_fld);
}


/**
  Helper to resolve the SQL:2003 Syntax exception 1) in <in predicate>.
  See SQL:2003, Part 2, section 8.4 <in predicate>, Note 184, page 383.
  This function returns the proper item for the SQL expression
  <code>left [NOT] IN ( expr )</code>
  @param thd the current thread
  @param left the in predicand
  @param equal true for IN predicates, false for NOT IN predicates
  @param expr first and only expression of the in value list
  @return an expression representing the IN predicate.
*/
Item* handle_sql2003_note184_exception(THD *thd, Item* left, bool equal,
                                       Item *expr)
{
  /*
    Relevant references for this issue:
    - SQL:2003, Part 2, section 8.4 <in predicate>, page 383,
    - SQL:2003, Part 2, section 7.2 <row value expression>, page 296,
    - SQL:2003, Part 2, section 6.3 <value expression primary>, page 174,
    - SQL:2003, Part 2, section 7.15 <subquery>, page 370,
    - SQL:2003 Feature F561, "Full value expressions".

    The exception in SQL:2003 Note 184 means:
    Item_singlerow_subselect, which corresponds to a <scalar subquery>,
    should be re-interpreted as an Item_in_subselect, which corresponds
    to a <table subquery> when used inside an <in predicate>.

    Our reading of Note 184 is reccursive, so that all:
    - IN (( <subquery> ))
    - IN ((( <subquery> )))
    - IN '('^N <subquery> ')'^N
    - etc
    should be interpreted as a <table subquery>, no matter how deep in the
    expression the <subquery> is.
  */

  Item *result;

  DBUG_ENTER("handle_sql2003_note184_exception");

  if (expr->type() == Item::SUBSELECT_ITEM)
  {
    Item_subselect *expr2 = (Item_subselect*) expr;

    if (expr2->substype() == Item_subselect::SINGLEROW_SUBS)
    {
      Item_singlerow_subselect *expr3 = (Item_singlerow_subselect*) expr2;
      st_select_lex *subselect;

      /*
        Implement the mandated change, by altering the semantic tree:
          left IN Item_singlerow_subselect(subselect)
        is modified to
          left IN (subselect)
        which is represented as
          Item_in_subselect(left, subselect)
      */
      subselect= expr3->invalidate_and_restore_select_lex();
      result= new (thd->mem_root) Item_in_subselect(left, subselect);

      if (! equal)
        result = negate_expression(thd, result);

      DBUG_RETURN(result);
    }
  }

  if (equal)
    result= new (thd->mem_root) Item_func_eq(left, expr);
  else
    result= new (thd->mem_root) Item_func_ne(left, expr);

  DBUG_RETURN(result);
}


static bool add_create_index_prepare (LEX *lex, Table_ident *table)
{
  lex->sql_command= SQLCOM_CREATE_INDEX;
  if (!lex->current_select->add_table_to_list(lex->thd, table, NULL,
                                              TL_OPTION_UPDATING))
    return TRUE;
  lex->alter_info.reset();
  lex->alter_info.flags= ALTER_ADD_INDEX;
  lex->col_list.empty();
  lex->change= NullS;
  return FALSE;
}


static bool add_create_index (LEX *lex, Key::Keytype type, const char *name, 
  KEY_CREATE_INFO *info= NULL, bool generated= 0)
{
  Key *key;
  key= new Key(type, name, info ? info : &lex->key_create_info, generated, 
               lex->col_list);
  if (key == NULL)
    return TRUE;

  lex->alter_info.key_list.push_back(key);
  lex->col_list.empty();
  return FALSE;
}



/* Line 189 of yacc.c  */
#line 688 "sql_yacc.cc"

/* Enabling traces.  */
#ifndef YYDEBUG
# define YYDEBUG 0
#endif

/* Enabling verbose error messages.  */
#ifdef YYERROR_VERBOSE
# undef YYERROR_VERBOSE
# define YYERROR_VERBOSE 1
#else
# define YYERROR_VERBOSE 0
#endif

/* Enabling the token table.  */
#ifndef YYTOKEN_TABLE
# define YYTOKEN_TABLE 0
#endif


/* Tokens.  */
#ifndef YYTOKENTYPE
# define YYTOKENTYPE
   /* Put the tokens into the symbol table, so that GDB and other debuggers
      know about them.  */
   enum yytokentype {
     ABORT_SYM = 258,
     ACCESSIBLE_SYM = 259,
     ACTION = 260,
     ADD = 261,
     ADDDATE_SYM = 262,
     AFTER_SYM = 263,
     AGAINST = 264,
     AGGREGATE_SYM = 265,
     ALGORITHM_SYM = 266,
     ALL = 267,
     ALTER = 268,
     ANALYZE_SYM = 269,
     AND_AND_SYM = 270,
     AND_SYM = 271,
     ANY_SYM = 272,
     AS = 273,
     ASC = 274,
     ASCII_SYM = 275,
     ASENSITIVE_SYM = 276,
     AT_SYM = 277,
     AUTHORS_SYM = 278,
     AUTOEXTEND_SIZE_SYM = 279,
     AUTO_INC = 280,
     AVG_ROW_LENGTH = 281,
     AVG_SYM = 282,
     BACKUP_SYM = 283,
     BEFORE_SYM = 284,
     BEGIN_SYM = 285,
     BETWEEN_SYM = 286,
     BIGINT = 287,
     BINARY = 288,
     BINLOG_SYM = 289,
     BIN_NUM = 290,
     BIT_AND = 291,
     BIT_OR = 292,
     BIT_SYM = 293,
     BIT_XOR = 294,
     BLOB_SYM = 295,
     BLOCK_SYM = 296,
     BOOLEAN_SYM = 297,
     BOOL_SYM = 298,
     BOTH = 299,
     BTREE_SYM = 300,
     BY = 301,
     BYTE_SYM = 302,
     CACHE_SYM = 303,
     CALL_SYM = 304,
     CASCADE = 305,
     CASCADED = 306,
     CASE_SYM = 307,
     CAST_SYM = 308,
     CHAIN_SYM = 309,
     CHANGE = 310,
     CHANGED = 311,
     CHARSET = 312,
     CHAR_SYM = 313,
     CHECKSUM_SYM = 314,
     CHECK_SYM = 315,
     CIPHER_SYM = 316,
     CLIENT_SYM = 317,
     CLOSE_SYM = 318,
     COALESCE = 319,
     CODE_SYM = 320,
     COLLATE_SYM = 321,
     COLLATION_SYM = 322,
     COLUMNS = 323,
     COLUMN_SYM = 324,
     COMMENT_SYM = 325,
     COMMITTED_SYM = 326,
     COMMIT_SYM = 327,
     COMPACT_SYM = 328,
     COMPLETION_SYM = 329,
     COMPRESSED_SYM = 330,
     CONCURRENT = 331,
     CONDITION_SYM = 332,
     CONNECTION_SYM = 333,
     CONSISTENT_SYM = 334,
     CONSTRAINT = 335,
     CONTAINS_SYM = 336,
     CONTEXT_SYM = 337,
     CONTINUE_SYM = 338,
     CONTRIBUTORS_SYM = 339,
     CONVERT_SYM = 340,
     COUNT_SYM = 341,
     CPU_SYM = 342,
     CREATE = 343,
     CROSS = 344,
     CUBE_SYM = 345,
     CURDATE = 346,
     CURRENT_USER = 347,
     CURSOR_SYM = 348,
     CURTIME = 349,
     DATABASE = 350,
     DATABASES = 351,
     DATAFILE_SYM = 352,
     DATA_SYM = 353,
     DATETIME = 354,
     DATE_ADD_INTERVAL = 355,
     DATE_SUB_INTERVAL = 356,
     DATE_SYM = 357,
     DAY_HOUR_SYM = 358,
     DAY_MICROSECOND_SYM = 359,
     DAY_MINUTE_SYM = 360,
     DAY_SECOND_SYM = 361,
     DAY_SYM = 362,
     DEALLOCATE_SYM = 363,
     DECIMAL_NUM = 364,
     DECIMAL_SYM = 365,
     DECLARE_SYM = 366,
     DEFAULT = 367,
     DEFINER_SYM = 368,
     DELAYED_SYM = 369,
     DELAY_KEY_WRITE_SYM = 370,
     DELETE_SYM = 371,
     DESC = 372,
     DESCRIBE = 373,
     DES_KEY_FILE = 374,
     DETERMINISTIC_SYM = 375,
     DIRECTORY_SYM = 376,
     DISABLE_SYM = 377,
     DISCARD = 378,
     DISK_SYM = 379,
     DISTINCT = 380,
     DIV_SYM = 381,
     DOUBLE_SYM = 382,
     DO_SYM = 383,
     DROP = 384,
     DUAL_SYM = 385,
     DUMPFILE = 386,
     DUPLICATE_SYM = 387,
     DYNAMIC_SYM = 388,
     EACH_SYM = 389,
     ELSE = 390,
     ELSEIF_SYM = 391,
     ENABLE_SYM = 392,
     ENCLOSED = 393,
     END = 394,
     ENDS_SYM = 395,
     END_OF_INPUT = 396,
     ENGINES_SYM = 397,
     ENGINE_SYM = 398,
     ENUM = 399,
     EQ = 400,
     EQUAL_SYM = 401,
     ERRORS = 402,
     ESCAPED = 403,
     ESCAPE_SYM = 404,
     EVENTS_SYM = 405,
     EVENT_SYM = 406,
     EVERY_SYM = 407,
     EXECUTE_SYM = 408,
     EXISTS = 409,
     EXIT_SYM = 410,
     EXPANSION_SYM = 411,
     EXTENDED_SYM = 412,
     EXTENT_SIZE_SYM = 413,
     EXTRACT_SYM = 414,
     FALSE_SYM = 415,
     FAST_SYM = 416,
     FAULTS_SYM = 417,
     FETCH_SYM = 418,
     FILE_SYM = 419,
     FIRST_SYM = 420,
     FIXED_SYM = 421,
     FLOAT_NUM = 422,
     FLOAT_SYM = 423,
     FLUSH_SYM = 424,
     FORCE_SYM = 425,
     FOREIGN = 426,
     FOR_SYM = 427,
     FOUND_SYM = 428,
     FRAC_SECOND_SYM = 429,
     FROM = 430,
     FULL = 431,
     FULLTEXT_SYM = 432,
     FUNCTION_SYM = 433,
     GE = 434,
     GEOMETRYCOLLECTION = 435,
     GEOMETRY_SYM = 436,
     GET_FORMAT = 437,
     GLOBAL_SYM = 438,
     GRANT = 439,
     GRANTS = 440,
     GROUP_SYM = 441,
     GROUP_CONCAT_SYM = 442,
     GT_SYM = 443,
     HANDLER_SYM = 444,
     HASH_SYM = 445,
     HAVING = 446,
     HELP_SYM = 447,
     HEX_NUM = 448,
     HIGH_PRIORITY = 449,
     HOST_SYM = 450,
     HOSTS_SYM = 451,
     HOUR_MICROSECOND_SYM = 452,
     HOUR_MINUTE_SYM = 453,
     HOUR_SECOND_SYM = 454,
     HOUR_SYM = 455,
     IDENT = 456,
     IDENTIFIED_SYM = 457,
     IDENT_QUOTED = 458,
     IF = 459,
     IGNORE_SYM = 460,
     IMPORT = 461,
     INDEXES = 462,
     INDEX_SYM = 463,
     INFILE = 464,
     INITIAL_SIZE_SYM = 465,
     INNER_SYM = 466,
     INNOBASE_SYM = 467,
     INOUT_SYM = 468,
     INSENSITIVE_SYM = 469,
     INSERT = 470,
     INSERT_METHOD = 471,
     INSTALL_SYM = 472,
     INTERVAL_SYM = 473,
     INTO = 474,
     INT_SYM = 475,
     INVOKER_SYM = 476,
     IN_SYM = 477,
     IO_SYM = 478,
     IPC_SYM = 479,
     IS = 480,
     ISOLATION = 481,
     ISSUER_SYM = 482,
     ITERATE_SYM = 483,
     JOIN_SYM = 484,
     KEYS = 485,
     KEY_BLOCK_SIZE = 486,
     KEY_SYM = 487,
     KILL_SYM = 488,
     LANGUAGE_SYM = 489,
     LAST_SYM = 490,
     LE = 491,
     LEADING = 492,
     LEAVES = 493,
     LEAVE_SYM = 494,
     LEFT = 495,
     LESS_SYM = 496,
     LEVEL_SYM = 497,
     LEX_HOSTNAME = 498,
     LIKE = 499,
     LIMIT = 500,
     LINEAR_SYM = 501,
     LINES = 502,
     LINESTRING = 503,
     LIST_SYM = 504,
     LOAD = 505,
     LOCAL_SYM = 506,
     LOCATOR_SYM = 507,
     LOCKS_SYM = 508,
     LOCK_SYM = 509,
     LOGFILE_SYM = 510,
     LOGS_SYM = 511,
     LONGBLOB = 512,
     LONGTEXT = 513,
     LONG_NUM = 514,
     LONG_SYM = 515,
     LOOP_SYM = 516,
     LOW_PRIORITY = 517,
     LT = 518,
     MASTER_CONNECT_RETRY_SYM = 519,
     MASTER_HOST_SYM = 520,
     MASTER_LOG_FILE_SYM = 521,
     MASTER_LOG_POS_SYM = 522,
     MASTER_PASSWORD_SYM = 523,
     MASTER_PORT_SYM = 524,
     MASTER_SERVER_ID_SYM = 525,
     MASTER_SSL_CAPATH_SYM = 526,
     MASTER_SSL_CA_SYM = 527,
     MASTER_SSL_CERT_SYM = 528,
     MASTER_SSL_CIPHER_SYM = 529,
     MASTER_SSL_KEY_SYM = 530,
     MASTER_SSL_SYM = 531,
     MASTER_SSL_VERIFY_SERVER_CERT_SYM = 532,
     MASTER_SYM = 533,
     MASTER_USER_SYM = 534,
     MATCH = 535,
     MAX_CONNECTIONS_PER_HOUR = 536,
     MAX_QUERIES_PER_HOUR = 537,
     MAX_ROWS = 538,
     MAX_SIZE_SYM = 539,
     MAX_SYM = 540,
     MAX_UPDATES_PER_HOUR = 541,
     MAX_USER_CONNECTIONS_SYM = 542,
     MAX_VALUE_SYM = 543,
     MEDIUMBLOB = 544,
     MEDIUMINT = 545,
     MEDIUMTEXT = 546,
     MEDIUM_SYM = 547,
     MEMORY_SYM = 548,
     MERGE_SYM = 549,
     MICROSECOND_SYM = 550,
     MIGRATE_SYM = 551,
     MINUTE_MICROSECOND_SYM = 552,
     MINUTE_SECOND_SYM = 553,
     MINUTE_SYM = 554,
     MIN_ROWS = 555,
     MIN_SYM = 556,
     MODE_SYM = 557,
     MODIFIES_SYM = 558,
     MODIFY_SYM = 559,
     MOD_SYM = 560,
     MONTH_SYM = 561,
     MULTILINESTRING = 562,
     MULTIPOINT = 563,
     MULTIPOLYGON = 564,
     MUTEX_SYM = 565,
     NAMES_SYM = 566,
     NAME_SYM = 567,
     NATIONAL_SYM = 568,
     NATURAL = 569,
     NCHAR_STRING = 570,
     NCHAR_SYM = 571,
     NDBCLUSTER_SYM = 572,
     NE = 573,
     NEG = 574,
     NEW_SYM = 575,
     NEXT_SYM = 576,
     NODEGROUP_SYM = 577,
     NONE_SYM = 578,
     NOT2_SYM = 579,
     NOT_SYM = 580,
     NOW_SYM = 581,
     NO_SYM = 582,
     NO_WAIT_SYM = 583,
     NO_WRITE_TO_BINLOG = 584,
     NULL_SYM = 585,
     NUM = 586,
     NUMERIC_SYM = 587,
     NVARCHAR_SYM = 588,
     OFFSET_SYM = 589,
     OLD_PASSWORD = 590,
     ON = 591,
     ONE_SHOT_SYM = 592,
     ONE_SYM = 593,
     OPEN_SYM = 594,
     OPTIMIZE = 595,
     OPTIONS_SYM = 596,
     OPTION = 597,
     OPTIONALLY = 598,
     OR2_SYM = 599,
     ORDER_SYM = 600,
     OR_OR_SYM = 601,
     OR_SYM = 602,
     OUTER = 603,
     OUTFILE = 604,
     OUT_SYM = 605,
     OWNER_SYM = 606,
     PACK_KEYS_SYM = 607,
     PAGE_SYM = 608,
     PARAM_MARKER = 609,
     PARSER_SYM = 610,
     PARTIAL = 611,
     PARTITIONING_SYM = 612,
     PARTITIONS_SYM = 613,
     PARTITION_SYM = 614,
     PASSWORD = 615,
     PHASE_SYM = 616,
     PLUGINS_SYM = 617,
     PLUGIN_SYM = 618,
     POINT_SYM = 619,
     POLYGON = 620,
     PORT_SYM = 621,
     POSITION_SYM = 622,
     PRECISION = 623,
     PREPARE_SYM = 624,
     PRESERVE_SYM = 625,
     PREV_SYM = 626,
     PRIMARY_SYM = 627,
     PRIVILEGES = 628,
     PROCEDURE = 629,
     PROCESS = 630,
     PROCESSLIST_SYM = 631,
     PROFILE_SYM = 632,
     PROFILES_SYM = 633,
     PURGE = 634,
     QUARTER_SYM = 635,
     QUERY_SYM = 636,
     QUICK = 637,
     RANGE_SYM = 638,
     READS_SYM = 639,
     READ_ONLY_SYM = 640,
     READ_SYM = 641,
     READ_WRITE_SYM = 642,
     REAL = 643,
     REBUILD_SYM = 644,
     RECOVER_SYM = 645,
     REDOFILE_SYM = 646,
     REDO_BUFFER_SIZE_SYM = 647,
     REDUNDANT_SYM = 648,
     REFERENCES = 649,
     REGEXP = 650,
     RELAY_LOG_FILE_SYM = 651,
     RELAY_LOG_POS_SYM = 652,
     RELAY_THREAD = 653,
     RELEASE_SYM = 654,
     RELOAD = 655,
     REMOVE_SYM = 656,
     RENAME = 657,
     REORGANIZE_SYM = 658,
     REPAIR = 659,
     REPEATABLE_SYM = 660,
     REPEAT_SYM = 661,
     REPLACE = 662,
     REPLICATION = 663,
     REQUIRE_SYM = 664,
     RESET_SYM = 665,
     RESOURCES = 666,
     RESTORE_SYM = 667,
     RESTRICT = 668,
     RESUME_SYM = 669,
     RETURNS_SYM = 670,
     RETURN_SYM = 671,
     REVOKE = 672,
     RIGHT = 673,
     ROLLBACK_SYM = 674,
     ROLLUP_SYM = 675,
     ROUTINE_SYM = 676,
     ROWS_SYM = 677,
     ROW_FORMAT_SYM = 678,
     ROW_SYM = 679,
     RTREE_SYM = 680,
     SAVEPOINT_SYM = 681,
     SCHEDULE_SYM = 682,
     SECOND_MICROSECOND_SYM = 683,
     SECOND_SYM = 684,
     SECURITY_SYM = 685,
     SELECT_SYM = 686,
     SENSITIVE_SYM = 687,
     SEPARATOR_SYM = 688,
     SERIALIZABLE_SYM = 689,
     SERIAL_SYM = 690,
     SESSION_SYM = 691,
     SERVER_SYM = 692,
     SERVER_OPTIONS = 693,
     SET = 694,
     SET_VAR = 695,
     SHARE_SYM = 696,
     SHIFT_LEFT = 697,
     SHIFT_RIGHT = 698,
     SHOW = 699,
     SHUTDOWN = 700,
     SIGNED_SYM = 701,
     SIMPLE_SYM = 702,
     SLAVE = 703,
     SMALLINT = 704,
     SNAPSHOT_SYM = 705,
     SOCKET_SYM = 706,
     SONAME_SYM = 707,
     SOUNDS_SYM = 708,
     SOURCE_SYM = 709,
     SPATIAL_SYM = 710,
     SPECIFIC_SYM = 711,
     SQLEXCEPTION_SYM = 712,
     SQLSTATE_SYM = 713,
     SQLWARNING_SYM = 714,
     SQL_BIG_RESULT = 715,
     SQL_BUFFER_RESULT = 716,
     SQL_CACHE_SYM = 717,
     SQL_CALC_FOUND_ROWS = 718,
     SQL_NO_CACHE_SYM = 719,
     SQL_SMALL_RESULT = 720,
     SQL_SYM = 721,
     SQL_THREAD = 722,
     SSL_SYM = 723,
     STARTING = 724,
     STARTS_SYM = 725,
     START_SYM = 726,
     STATUS_SYM = 727,
     STDDEV_SAMP_SYM = 728,
     STD_SYM = 729,
     STOP_SYM = 730,
     STORAGE_SYM = 731,
     STRAIGHT_JOIN = 732,
     STRING_SYM = 733,
     SUBDATE_SYM = 734,
     SUBJECT_SYM = 735,
     SUBPARTITIONS_SYM = 736,
     SUBPARTITION_SYM = 737,
     SUBSTRING = 738,
     SUM_SYM = 739,
     SUPER_SYM = 740,
     SUSPEND_SYM = 741,
     SWAPS_SYM = 742,
     SWITCHES_SYM = 743,
     SYSDATE = 744,
     TABLES = 745,
     TABLESPACE = 746,
     TABLE_REF_PRIORITY = 747,
     TABLE_SYM = 748,
     TABLE_CHECKSUM_SYM = 749,
     TEMPORARY = 750,
     TEMPTABLE_SYM = 751,
     TERMINATED = 752,
     TEXT_STRING = 753,
     TEXT_SYM = 754,
     THAN_SYM = 755,
     THEN_SYM = 756,
     TIMESTAMP = 757,
     TIMESTAMP_ADD = 758,
     TIMESTAMP_DIFF = 759,
     TIME_SYM = 760,
     TINYBLOB = 761,
     TINYINT = 762,
     TINYTEXT = 763,
     TO_SYM = 764,
     TRAILING = 765,
     TRANSACTION_SYM = 766,
     TRIGGERS_SYM = 767,
     TRIGGER_SYM = 768,
     TRIM = 769,
     TRUE_SYM = 770,
     TRUNCATE_SYM = 771,
     TYPES_SYM = 772,
     TYPE_SYM = 773,
     UDF_RETURNS_SYM = 774,
     ULONGLONG_NUM = 775,
     UNCOMMITTED_SYM = 776,
     UNDEFINED_SYM = 777,
     UNDERSCORE_CHARSET = 778,
     UNDOFILE_SYM = 779,
     UNDO_BUFFER_SIZE_SYM = 780,
     UNDO_SYM = 781,
     UNICODE_SYM = 782,
     UNINSTALL_SYM = 783,
     UNION_SYM = 784,
     UNIQUE_SYM = 785,
     UNKNOWN_SYM = 786,
     UNLOCK_SYM = 787,
     UNSIGNED = 788,
     UNTIL_SYM = 789,
     UPDATE_SYM = 790,
     UPGRADE_SYM = 791,
     USAGE = 792,
     USER = 793,
     USE_FRM = 794,
     USE_SYM = 795,
     USING = 796,
     UTC_DATE_SYM = 797,
     UTC_TIMESTAMP_SYM = 798,
     UTC_TIME_SYM = 799,
     VALUES = 800,
     VALUE_SYM = 801,
     VARBINARY = 802,
     VARCHAR = 803,
     VARIABLES = 804,
     VARIANCE_SYM = 805,
     VARYING = 806,
     VAR_SAMP_SYM = 807,
     VIEW_SYM = 808,
     WAIT_SYM = 809,
     WARNINGS = 810,
     WEEK_SYM = 811,
     WHEN_SYM = 812,
     WHERE = 813,
     WHILE_SYM = 814,
     WITH = 815,
     WORK_SYM = 816,
     WRAPPER_SYM = 817,
     WRITE_SYM = 818,
     X509_SYM = 819,
     XA_SYM = 820,
     XOR = 821,
     YEAR_MONTH_SYM = 822,
     YEAR_SYM = 823,
     ZEROFILL = 824
   };
#endif
/* Tokens.  */
#define ABORT_SYM 258
#define ACCESSIBLE_SYM 259
#define ACTION 260
#define ADD 261
#define ADDDATE_SYM 262
#define AFTER_SYM 263
#define AGAINST 264
#define AGGREGATE_SYM 265
#define ALGORITHM_SYM 266
#define ALL 267
#define ALTER 268
#define ANALYZE_SYM 269
#define AND_AND_SYM 270
#define AND_SYM 271
#define ANY_SYM 272
#define AS 273
#define ASC 274
#define ASCII_SYM 275
#define ASENSITIVE_SYM 276
#define AT_SYM 277
#define AUTHORS_SYM 278
#define AUTOEXTEND_SIZE_SYM 279
#define AUTO_INC 280
#define AVG_ROW_LENGTH 281
#define AVG_SYM 282
#define BACKUP_SYM 283
#define BEFORE_SYM 284
#define BEGIN_SYM 285
#define BETWEEN_SYM 286
#define BIGINT 287
#define BINARY 288
#define BINLOG_SYM 289
#define BIN_NUM 290
#define BIT_AND 291
#define BIT_OR 292
#define BIT_SYM 293
#define BIT_XOR 294
#define BLOB_SYM 295
#define BLOCK_SYM 296
#define BOOLEAN_SYM 297
#define BOOL_SYM 298
#define BOTH 299
#define BTREE_SYM 300
#define BY 301
#define BYTE_SYM 302
#define CACHE_SYM 303
#define CALL_SYM 304
#define CASCADE 305
#define CASCADED 306
#define CASE_SYM 307
#define CAST_SYM 308
#define CHAIN_SYM 309
#define CHANGE 310
#define CHANGED 311
#define CHARSET 312
#define CHAR_SYM 313
#define CHECKSUM_SYM 314
#define CHECK_SYM 315
#define CIPHER_SYM 316
#define CLIENT_SYM 317
#define CLOSE_SYM 318
#define COALESCE 319
#define CODE_SYM 320
#define COLLATE_SYM 321
#define COLLATION_SYM 322
#define COLUMNS 323
#define COLUMN_SYM 324
#define COMMENT_SYM 325
#define COMMITTED_SYM 326
#define COMMIT_SYM 327
#define COMPACT_SYM 328
#define COMPLETION_SYM 329
#define COMPRESSED_SYM 330
#define CONCURRENT 331
#define CONDITION_SYM 332
#define CONNECTION_SYM 333
#define CONSISTENT_SYM 334
#define CONSTRAINT 335
#define CONTAINS_SYM 336
#define CONTEXT_SYM 337
#define CONTINUE_SYM 338
#define CONTRIBUTORS_SYM 339
#define CONVERT_SYM 340
#define COUNT_SYM 341
#define CPU_SYM 342
#define CREATE 343
#define CROSS 344
#define CUBE_SYM 345
#define CURDATE 346
#define CURRENT_USER 347
#define CURSOR_SYM 348
#define CURTIME 349
#define DATABASE 350
#define DATABASES 351
#define DATAFILE_SYM 352
#define DATA_SYM 353
#define DATETIME 354
#define DATE_ADD_INTERVAL 355
#define DATE_SUB_INTERVAL 356
#define DATE_SYM 357
#define DAY_HOUR_SYM 358
#define DAY_MICROSECOND_SYM 359
#define DAY_MINUTE_SYM 360
#define DAY_SECOND_SYM 361
#define DAY_SYM 362
#define DEALLOCATE_SYM 363
#define DECIMAL_NUM 364
#define DECIMAL_SYM 365
#define DECLARE_SYM 366
#define DEFAULT 367
#define DEFINER_SYM 368
#define DELAYED_SYM 369
#define DELAY_KEY_WRITE_SYM 370
#define DELETE_SYM 371
#define DESC 372
#define DESCRIBE 373
#define DES_KEY_FILE 374
#define DETERMINISTIC_SYM 375
#define DIRECTORY_SYM 376
#define DISABLE_SYM 377
#define DISCARD 378
#define DISK_SYM 379
#define DISTINCT 380
#define DIV_SYM 381
#define DOUBLE_SYM 382
#define DO_SYM 383
#define DROP 384
#define DUAL_SYM 385
#define DUMPFILE 386
#define DUPLICATE_SYM 387
#define DYNAMIC_SYM 388
#define EACH_SYM 389
#define ELSE 390
#define ELSEIF_SYM 391
#define ENABLE_SYM 392
#define ENCLOSED 393
#define END 394
#define ENDS_SYM 395
#define END_OF_INPUT 396
#define ENGINES_SYM 397
#define ENGINE_SYM 398
#define ENUM 399
#define EQ 400
#define EQUAL_SYM 401
#define ERRORS 402
#define ESCAPED 403
#define ESCAPE_SYM 404
#define EVENTS_SYM 405
#define EVENT_SYM 406
#define EVERY_SYM 407
#define EXECUTE_SYM 408
#define EXISTS 409
#define EXIT_SYM 410
#define EXPANSION_SYM 411
#define EXTENDED_SYM 412
#define EXTENT_SIZE_SYM 413
#define EXTRACT_SYM 414
#define FALSE_SYM 415
#define FAST_SYM 416
#define FAULTS_SYM 417
#define FETCH_SYM 418
#define FILE_SYM 419
#define FIRST_SYM 420
#define FIXED_SYM 421
#define FLOAT_NUM 422
#define FLOAT_SYM 423
#define FLUSH_SYM 424
#define FORCE_SYM 425
#define FOREIGN 426
#define FOR_SYM 427
#define FOUND_SYM 428
#define FRAC_SECOND_SYM 429
#define FROM 430
#define FULL 431
#define FULLTEXT_SYM 432
#define FUNCTION_SYM 433
#define GE 434
#define GEOMETRYCOLLECTION 435
#define GEOMETRY_SYM 436
#define GET_FORMAT 437
#define GLOBAL_SYM 438
#define GRANT 439
#define GRANTS 440
#define GROUP_SYM 441
#define GROUP_CONCAT_SYM 442
#define GT_SYM 443
#define HANDLER_SYM 444
#define HASH_SYM 445
#define HAVING 446
#define HELP_SYM 447
#define HEX_NUM 448
#define HIGH_PRIORITY 449
#define HOST_SYM 450
#define HOSTS_SYM 451
#define HOUR_MICROSECOND_SYM 452
#define HOUR_MINUTE_SYM 453
#define HOUR_SECOND_SYM 454
#define HOUR_SYM 455
#define IDENT 456
#define IDENTIFIED_SYM 457
#define IDENT_QUOTED 458
#define IF 459
#define IGNORE_SYM 460
#define IMPORT 461
#define INDEXES 462
#define INDEX_SYM 463
#define INFILE 464
#define INITIAL_SIZE_SYM 465
#define INNER_SYM 466
#define INNOBASE_SYM 467
#define INOUT_SYM 468
#define INSENSITIVE_SYM 469
#define INSERT 470
#define INSERT_METHOD 471
#define INSTALL_SYM 472
#define INTERVAL_SYM 473
#define INTO 474
#define INT_SYM 475
#define INVOKER_SYM 476
#define IN_SYM 477
#define IO_SYM 478
#define IPC_SYM 479
#define IS 480
#define ISOLATION 481
#define ISSUER_SYM 482
#define ITERATE_SYM 483
#define JOIN_SYM 484
#define KEYS 485
#define KEY_BLOCK_SIZE 486
#define KEY_SYM 487
#define KILL_SYM 488
#define LANGUAGE_SYM 489
#define LAST_SYM 490
#define LE 491
#define LEADING 492
#define LEAVES 493
#define LEAVE_SYM 494
#define LEFT 495
#define LESS_SYM 496
#define LEVEL_SYM 497
#define LEX_HOSTNAME 498
#define LIKE 499
#define LIMIT 500
#define LINEAR_SYM 501
#define LINES 502
#define LINESTRING 503
#define LIST_SYM 504
#define LOAD 505
#define LOCAL_SYM 506
#define LOCATOR_SYM 507
#define LOCKS_SYM 508
#define LOCK_SYM 509
#define LOGFILE_SYM 510
#define LOGS_SYM 511
#define LONGBLOB 512
#define LONGTEXT 513
#define LONG_NUM 514
#define LONG_SYM 515
#define LOOP_SYM 516
#define LOW_PRIORITY 517
#define LT 518
#define MASTER_CONNECT_RETRY_SYM 519
#define MASTER_HOST_SYM 520
#define MASTER_LOG_FILE_SYM 521
#define MASTER_LOG_POS_SYM 522
#define MASTER_PASSWORD_SYM 523
#define MASTER_PORT_SYM 524
#define MASTER_SERVER_ID_SYM 525
#define MASTER_SSL_CAPATH_SYM 526
#define MASTER_SSL_CA_SYM 527
#define MASTER_SSL_CERT_SYM 528
#define MASTER_SSL_CIPHER_SYM 529
#define MASTER_SSL_KEY_SYM 530
#define MASTER_SSL_SYM 531
#define MASTER_SSL_VERIFY_SERVER_CERT_SYM 532
#define MASTER_SYM 533
#define MASTER_USER_SYM 534
#define MATCH 535
#define MAX_CONNECTIONS_PER_HOUR 536
#define MAX_QUERIES_PER_HOUR 537
#define MAX_ROWS 538
#define MAX_SIZE_SYM 539
#define MAX_SYM 540
#define MAX_UPDATES_PER_HOUR 541
#define MAX_USER_CONNECTIONS_SYM 542
#define MAX_VALUE_SYM 543
#define MEDIUMBLOB 544
#define MEDIUMINT 545
#define MEDIUMTEXT 546
#define MEDIUM_SYM 547
#define MEMORY_SYM 548
#define MERGE_SYM 549
#define MICROSECOND_SYM 550
#define MIGRATE_SYM 551
#define MINUTE_MICROSECOND_SYM 552
#define MINUTE_SECOND_SYM 553
#define MINUTE_SYM 554
#define MIN_ROWS 555
#define MIN_SYM 556
#define MODE_SYM 557
#define MODIFIES_SYM 558
#define MODIFY_SYM 559
#define MOD_SYM 560
#define MONTH_SYM 561
#define MULTILINESTRING 562
#define MULTIPOINT 563
#define MULTIPOLYGON 564
#define MUTEX_SYM 565
#define NAMES_SYM 566
#define NAME_SYM 567
#define NATIONAL_SYM 568
#define NATURAL 569
#define NCHAR_STRING 570
#define NCHAR_SYM 571
#define NDBCLUSTER_SYM 572
#define NE 573
#define NEG 574
#define NEW_SYM 575
#define NEXT_SYM 576
#define NODEGROUP_SYM 577
#define NONE_SYM 578
#define NOT2_SYM 579
#define NOT_SYM 580
#define NOW_SYM 581
#define NO_SYM 582
#define NO_WAIT_SYM 583
#define NO_WRITE_TO_BINLOG 584
#define NULL_SYM 585
#define NUM 586
#define NUMERIC_SYM 587
#define NVARCHAR_SYM 588
#define OFFSET_SYM 589
#define OLD_PASSWORD 590
#define ON 591
#define ONE_SHOT_SYM 592
#define ONE_SYM 593
#define OPEN_SYM 594
#define OPTIMIZE 595
#define OPTIONS_SYM 596
#define OPTION 597
#define OPTIONALLY 598
#define OR2_SYM 599
#define ORDER_SYM 600
#define OR_OR_SYM 601
#define OR_SYM 602
#define OUTER 603
#define OUTFILE 604
#define OUT_SYM 605
#define OWNER_SYM 606
#define PACK_KEYS_SYM 607
#define PAGE_SYM 608
#define PARAM_MARKER 609
#define PARSER_SYM 610
#define PARTIAL 611
#define PARTITIONING_SYM 612
#define PARTITIONS_SYM 613
#define PARTITION_SYM 614
#define PASSWORD 615
#define PHASE_SYM 616
#define PLUGINS_SYM 617
#define PLUGIN_SYM 618
#define POINT_SYM 619
#define POLYGON 620
#define PORT_SYM 621
#define POSITION_SYM 622
#define PRECISION 623
#define PREPARE_SYM 624
#define PRESERVE_SYM 625
#define PREV_SYM 626
#define PRIMARY_SYM 627
#define PRIVILEGES 628
#define PROCEDURE 629
#define PROCESS 630
#define PROCESSLIST_SYM 631
#define PROFILE_SYM 632
#define PROFILES_SYM 633
#define PURGE 634
#define QUARTER_SYM 635
#define QUERY_SYM 636
#define QUICK 637
#define RANGE_SYM 638
#define READS_SYM 639
#define READ_ONLY_SYM 640
#define READ_SYM 641
#define READ_WRITE_SYM 642
#define REAL 643
#define REBUILD_SYM 644
#define RECOVER_SYM 645
#define REDOFILE_SYM 646
#define REDO_BUFFER_SIZE_SYM 647
#define REDUNDANT_SYM 648
#define REFERENCES 649
#define REGEXP 650
#define RELAY_LOG_FILE_SYM 651
#define RELAY_LOG_POS_SYM 652
#define RELAY_THREAD 653
#define RELEASE_SYM 654
#define RELOAD 655
#define REMOVE_SYM 656
#define RENAME 657
#define REORGANIZE_SYM 658
#define REPAIR 659
#define REPEATABLE_SYM 660
#define REPEAT_SYM 661
#define REPLACE 662
#define REPLICATION 663
#define REQUIRE_SYM 664
#define RESET_SYM 665
#define RESOURCES 666
#define RESTORE_SYM 667
#define RESTRICT 668
#define RESUME_SYM 669
#define RETURNS_SYM 670
#define RETURN_SYM 671
#define REVOKE 672
#define RIGHT 673
#define ROLLBACK_SYM 674
#define ROLLUP_SYM 675
#define ROUTINE_SYM 676
#define ROWS_SYM 677
#define ROW_FORMAT_SYM 678
#define ROW_SYM 679
#define RTREE_SYM 680
#define SAVEPOINT_SYM 681
#define SCHEDULE_SYM 682
#define SECOND_MICROSECOND_SYM 683
#define SECOND_SYM 684
#define SECURITY_SYM 685
#define SELECT_SYM 686
#define SENSITIVE_SYM 687
#define SEPARATOR_SYM 688
#define SERIALIZABLE_SYM 689
#define SERIAL_SYM 690
#define SESSION_SYM 691
#define SERVER_SYM 692
#define SERVER_OPTIONS 693
#define SET 694
#define SET_VAR 695
#define SHARE_SYM 696
#define SHIFT_LEFT 697
#define SHIFT_RIGHT 698
#define SHOW 699
#define SHUTDOWN 700
#define SIGNED_SYM 701
#define SIMPLE_SYM 702
#define SLAVE 703
#define SMALLINT 704
#define SNAPSHOT_SYM 705
#define SOCKET_SYM 706
#define SONAME_SYM 707
#define SOUNDS_SYM 708
#define SOURCE_SYM 709
#define SPATIAL_SYM 710
#define SPECIFIC_SYM 711
#define SQLEXCEPTION_SYM 712
#define SQLSTATE_SYM 713
#define SQLWARNING_SYM 714
#define SQL_BIG_RESULT 715
#define SQL_BUFFER_RESULT 716
#define SQL_CACHE_SYM 717
#define SQL_CALC_FOUND_ROWS 718
#define SQL_NO_CACHE_SYM 719
#define SQL_SMALL_RESULT 720
#define SQL_SYM 721
#define SQL_THREAD 722
#define SSL_SYM 723
#define STARTING 724
#define STARTS_SYM 725
#define START_SYM 726
#define STATUS_SYM 727
#define STDDEV_SAMP_SYM 728
#define STD_SYM 729
#define STOP_SYM 730
#define STORAGE_SYM 731
#define STRAIGHT_JOIN 732
#define STRING_SYM 733
#define SUBDATE_SYM 734
#define SUBJECT_SYM 735
#define SUBPARTITIONS_SYM 736
#define SUBPARTITION_SYM 737
#define SUBSTRING 738
#define SUM_SYM 739
#define SUPER_SYM 740
#define SUSPEND_SYM 741
#define SWAPS_SYM 742
#define SWITCHES_SYM 743
#define SYSDATE 744
#define TABLES 745
#define TABLESPACE 746
#define TABLE_REF_PRIORITY 747
#define TABLE_SYM 748
#define TABLE_CHECKSUM_SYM 749
#define TEMPORARY 750
#define TEMPTABLE_SYM 751
#define TERMINATED 752
#define TEXT_STRING 753
#define TEXT_SYM 754
#define THAN_SYM 755
#define THEN_SYM 756
#define TIMESTAMP 757
#define TIMESTAMP_ADD 758
#define TIMESTAMP_DIFF 759
#define TIME_SYM 760
#define TINYBLOB 761
#define TINYINT 762
#define TINYTEXT 763
#define TO_SYM 764
#define TRAILING 765
#define TRANSACTION_SYM 766
#define TRIGGERS_SYM 767
#define TRIGGER_SYM 768
#define TRIM 769
#define TRUE_SYM 770
#define TRUNCATE_SYM 771
#define TYPES_SYM 772
#define TYPE_SYM 773
#define UDF_RETURNS_SYM 774
#define ULONGLONG_NUM 775
#define UNCOMMITTED_SYM 776
#define UNDEFINED_SYM 777
#define UNDERSCORE_CHARSET 778
#define UNDOFILE_SYM 779
#define UNDO_BUFFER_SIZE_SYM 780
#define UNDO_SYM 781
#define UNICODE_SYM 782
#define UNINSTALL_SYM 783
#define UNION_SYM 784
#define UNIQUE_SYM 785
#define UNKNOWN_SYM 786
#define UNLOCK_SYM 787
#define UNSIGNED 788
#define UNTIL_SYM 789
#define UPDATE_SYM 790
#define UPGRADE_SYM 791
#define USAGE 792
#define USER 793
#define USE_FRM 794
#define USE_SYM 795
#define USING 796
#define UTC_DATE_SYM 797
#define UTC_TIMESTAMP_SYM 798
#define UTC_TIME_SYM 799
#define VALUES 800
#define VALUE_SYM 801
#define VARBINARY 802
#define VARCHAR 803
#define VARIABLES 804
#define VARIANCE_SYM 805
#define VARYING 806
#define VAR_SAMP_SYM 807
#define VIEW_SYM 808
#define WAIT_SYM 809
#define WARNINGS 810
#define WEEK_SYM 811
#define WHEN_SYM 812
#define WHERE 813
#define WHILE_SYM 814
#define WITH 815
#define WORK_SYM 816
#define WRAPPER_SYM 817
#define WRITE_SYM 818
#define X509_SYM 819
#define XA_SYM 820
#define XOR 821
#define YEAR_MONTH_SYM 822
#define YEAR_SYM 823
#define ZEROFILL 824




#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
typedef union YYSTYPE
{

/* Line 214 of yacc.c  */
#line 628 "sql_yacc.yy"

  int  num;
  ulong ulong_num;
  ulonglong ulonglong_number;
  longlong longlong_number;
  LEX_STRING lex_str;
  LEX_STRING *lex_str_ptr;
  LEX_SYMBOL symbol;
  Table_ident *table;
  char *simple_string;
  Item *item;
  Item_num *item_num;
  List<Item> *item_list;
  List<String> *string_list;
  String *string;
  Key_part_spec *key_part;
  TABLE_LIST *table_list;
  udf_func *udf;
  LEX_USER *lex_user;
  struct sys_var_with_base variable;
  enum enum_var_type var_type;
  Key::Keytype key_type;
  enum ha_key_alg key_alg;
  handlerton *db_type;
  enum row_type row_type;
  enum ha_rkey_function ha_rkey_mode;
  enum enum_tx_isolation tx_isolation;
  enum Cast_target cast_type;
  enum Item_udftype udf_type;
  CHARSET_INFO *charset;
  thr_lock_type lock_type;
  interval_type interval, interval_time_st;
  timestamp_type date_time_type;
  st_select_lex *select_lex;
  chooser_compare_func_creator boolfunc2creator;
  struct sp_cond_type *spcondtype;
  struct { int vars, conds, hndlrs, curs; } spblock;
  sp_name *spname;
  struct st_lex *lex;
  sp_head *sphead;
  struct p_elem_val *p_elem_value;
  enum index_hint_type index_hint;



/* Line 214 of yacc.c  */
#line 1908 "sql_yacc.cc"
} YYSTYPE;
# define YYSTYPE_IS_TRIVIAL 1
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
#endif


/* Copy the second part of user declarations.  */

/* Line 264 of yacc.c  */
#line 672 "sql_yacc.yy"

bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize);


/* Line 264 of yacc.c  */
#line 1925 "sql_yacc.cc"

#ifdef short
# undef short
#endif

#ifdef YYTYPE_UINT8
typedef YYTYPE_UINT8 yytype_uint8;
#else
typedef unsigned char yytype_uint8;
#endif

#ifdef YYTYPE_INT8
typedef YYTYPE_INT8 yytype_int8;
#elif (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
typedef signed char yytype_int8;
#else
typedef short int yytype_int8;
#endif

#ifdef YYTYPE_UINT16
typedef YYTYPE_UINT16 yytype_uint16;
#else
typedef unsigned short int yytype_uint16;
#endif

#ifdef YYTYPE_INT16
typedef YYTYPE_INT16 yytype_int16;
#else
typedef short int yytype_int16;
#endif

#ifndef YYSIZE_T
# ifdef __SIZE_TYPE__
#  define YYSIZE_T __SIZE_TYPE__
# elif defined size_t
#  define YYSIZE_T size_t
# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
#  define YYSIZE_T size_t
# else
#  define YYSIZE_T unsigned int
# endif
#endif

#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)

#ifndef YY_
# if YYENABLE_NLS
#  if ENABLE_NLS
#   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
#   define YY_(msgid) dgettext ("bison-runtime", msgid)
#  endif
# endif
# ifndef YY_
#  define YY_(msgid) msgid
# endif
#endif

/* Suppress unused-variable warnings by "using" E.  */
#if ! defined lint || defined __GNUC__
# define YYUSE(e) ((void) (e))
#else
# define YYUSE(e) /* empty */
#endif

/* Identity function, used to suppress warnings about constant conditions.  */
#ifndef lint
# define YYID(n) (n)
#else
#if (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
static int
YYID (int yyi)
#else
static int
YYID (yyi)
    int yyi;
#endif
{
  return yyi;
}
#endif

#if ! defined yyoverflow || YYERROR_VERBOSE

/* The parser invokes alloca or malloc; define the necessary symbols.  */

# ifdef YYSTACK_USE_ALLOCA
#  if YYSTACK_USE_ALLOCA
#   ifdef __GNUC__
#    define YYSTACK_ALLOC __builtin_alloca
#   elif defined __BUILTIN_VA_ARG_INCR
#    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
#   elif defined _AIX
#    define YYSTACK_ALLOC __alloca
#   elif defined _MSC_VER
#    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
#    define alloca _alloca
#   else
#    define YYSTACK_ALLOC alloca
#    if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
#     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
#     ifndef _STDLIB_H
#      define _STDLIB_H 1
#     endif
#    endif
#   endif
#  endif
# endif

# ifdef YYSTACK_ALLOC
   /* Pacify GCC's `empty if-body' warning.  */
#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
#  ifndef YYSTACK_ALLOC_MAXIMUM
    /* The OS might guarantee only one guard page at the bottom of the stack,
       and a page size can be as small as 4096 bytes.  So we cannot safely
       invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
       to allow for a few compiler-allocated temporary stack slots.  */
#   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
#  endif
# else
#  define YYSTACK_ALLOC YYMALLOC
#  define YYSTACK_FREE YYFREE
#  ifndef YYSTACK_ALLOC_MAXIMUM
#   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
#  endif
#  if (defined __cplusplus && ! defined _STDLIB_H \
       && ! ((defined YYMALLOC || defined malloc) \
	     && (defined YYFREE || defined free)))
#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
#   ifndef _STDLIB_H
#    define _STDLIB_H 1
#   endif
#  endif
#  ifndef YYMALLOC
#   define YYMALLOC malloc
#   if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
#   endif
#  endif
#  ifndef YYFREE
#   define YYFREE free
#   if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
void free (void *); /* INFRINGES ON USER NAME SPACE */
#   endif
#  endif
# endif
#endif /* ! defined yyoverflow || YYERROR_VERBOSE */


#if (! defined yyoverflow \
     && (! defined __cplusplus \
	 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))

/* A type that is properly aligned for any stack member.  */
union yyalloc
{
  yytype_int16 yyss_alloc;
  YYSTYPE yyvs_alloc;
};

/* The size of the maximum gap between one aligned stack and the next.  */
# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)

/* The size of an array large to enough to hold all stacks, each with
   N elements.  */
# define YYSTACK_BYTES(N) \
     ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
      + YYSTACK_GAP_MAXIMUM)

/* Copy COUNT objects from FROM to TO.  The source and destination do
   not overlap.  */
# ifndef YYCOPY
#  if defined __GNUC__ && 1 < __GNUC__
#   define YYCOPY(To, From, Count) \
      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
#  else
#   define YYCOPY(To, From, Count)		\
      do					\
	{					\
	  YYSIZE_T yyi;				\
	  for (yyi = 0; yyi < (Count); yyi++)	\
	    (To)[yyi] = (From)[yyi];		\
	}					\
      while (YYID (0))
#  endif
# endif

/* Relocate STACK from its old location to the new one.  The
   local variables YYSIZE and YYSTACKSIZE give the old and new number of
   elements in the stack, and YYPTR gives the new location of the
   stack.  Advance YYPTR to a properly aligned location for the next
   stack.  */
# define YYSTACK_RELOCATE(Stack_alloc, Stack)				\
    do									\
      {									\
	YYSIZE_T yynewbytes;						\
	YYCOPY (&yyptr->Stack_alloc, Stack, yysize);			\
	Stack = &yyptr->Stack_alloc;					\
	yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
	yyptr += yynewbytes / sizeof (*yyptr);				\
      }									\
    while (YYID (0))

#endif

/* YYFINAL -- State number of the termination state.  */
#define YYFINAL  550
/* YYLAST -- Last index in YYTABLE.  */
#define YYLAST   46716

/* YYNTOKENS -- Number of terminals.  */
#define YYNTOKENS  589
/* YYNNTS -- Number of nonterminals.  */
#define YYNNTS  838
/* YYNRULES -- Number of rules.  */
#define YYNRULES  2380
/* YYNRULES -- Number of states.  */
#define YYNSTATES  4086

/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
#define YYUNDEFTOK  2
#define YYMAXUTOK   824

#define YYTRANSLATE(YYX)						\
  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)

/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
static const yytype_uint16 yytranslate[] =
{
       0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,   582,     2,     2,     2,   576,   571,     2,
     579,   580,   574,   573,   581,   572,   587,   575,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,   588,   585,
       2,     2,     2,     2,   586,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,   577,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,   583,   570,   584,   578,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
     115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
     125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
     135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
     145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
     155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
     165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
     175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
     185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
     195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
     225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
     235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
     245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
     255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
     315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
     325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
     335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
     345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
     365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
     375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
     385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
     405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
     415,   416,   417,   418,   419,   420,   421,   422,   423,   424,
     425,   426,   427,   428,   429,   430,   431,   432,   433,   434,
     435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
     445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
     455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
     475,   476,   477,   478,   479,   480,   481,   482,   483,   484,
     485,   486,   487,   488,   489,   490,   491,   492,   493,   494,
     495,   496,   497,   498,   499,   500,   501,   502,   503,   504,
     505,   506,   507,   508,   509,   510,   511,   512,   513,   514,
     515,   516,   517,   518,   519,   520,   521,   522,   523,   524,
     525,   526,   527,   528,   529,   530,   531,   532,   533,   534,
     535,   536,   537,   538,   539,   540,   541,   542,   543,   544,
     545,   546,   547,   548,   549,   550,   551,   552,   553,   554,
     555,   556,   557,   558,   559,   560,   561,   562,   563,   564,
     565,   566,   567,   568,   569
};

#if YYDEBUG
/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
   YYRHS.  */
static const yytype_uint16 yyprhs[] =
{
       0,     0,     3,     5,     6,    11,    14,    15,    17,    19,
      21,    23,    25,    27,    29,    31,    33,    35,    37,    39,
      41,    43,    45,    47,    49,    51,    53,    55,    57,    59,
      61,    63,    65,    67,    69,    71,    73,    75,    77,    79,
      81,    83,    85,    87,    89,    91,    93,    95,    97,    99,
     101,   103,   105,   107,   109,   111,   113,   115,   117,   119,
     121,   123,   127,   129,   131,   136,   138,   141,   142,   147,
     148,   151,   155,   157,   160,   161,   165,   166,   172,   174,
     178,   182,   186,   190,   194,   198,   202,   206,   210,   214,
     218,   222,   226,   228,   232,   236,   240,   244,   245,   253,
     254,   267,   268,   281,   282,   295,   296,   303,   304,   308,
     313,   318,   322,   325,   336,   338,   342,   345,   348,   351,
     354,   357,   360,   363,   364,   378,   379,   386,   389,   390,
     392,   396,   398,   399,   402,   403,   406,   407,   409,   413,
     418,   419,   422,   423,   426,   428,   430,   432,   434,   436,
     438,   440,   442,   444,   446,   448,   450,   452,   453,   457,
     459,   460,   463,   464,   467,   470,   473,   476,   479,   483,
     487,   489,   491,   493,   496,   500,   504,   505,   510,   511,
     515,   516,   518,   522,   524,   525,   527,   531,   533,   534,
     538,   539,   541,   545,   547,   552,   553,   555,   557,   559,
     560,   564,   567,   571,   572,   576,   577,   583,   589,   590,
     598,   604,   605,   608,   610,   612,   614,   618,   620,   622,
     626,   627,   629,   631,   633,   635,   638,   640,   642,   646,
     647,   650,   652,   654,   656,   658,   660,   662,   664,   666,
     668,   670,   672,   674,   676,   677,   683,   684,   687,   688,
     692,   693,   696,   699,   702,   705,   706,   713,   716,   717,
     720,   722,   724,   728,   729,   730,   731,   739,   740,   743,
     746,   748,   750,   751,   752,   761,   762,   769,   771,   774,
     776,   779,   780,   781,   788,   789,   790,   797,   798,   801,
     802,   808,   809,   811,   812,   818,   819,   822,   823,   829,
     834,   835,   836,   845,   846,   854,   856,   858,   860,   862,
     864,   867,   872,   878,   879,   884,   889,   894,   898,   902,
     905,   908,   909,   912,   914,   917,   921,   923,   925,   927,
     929,   931,   934,   938,   940,   942,   944,   946,   948,   950,
     952,   954,   956,   958,   961,   965,   967,   969,   971,   973,
     975,   977,   979,   982,   986,   988,   990,   992,   994,   996,
     998,  1000,  1002,  1004,  1007,  1011,  1013,  1015,  1017,  1020,
    1023,  1026,  1028,  1030,  1032,  1034,  1037,  1041,  1045,  1049,
    1053,  1057,  1061,  1065,  1069,  1074,  1075,  1077,  1079,  1081,
    1083,  1085,  1088,  1092,  1095,  1100,  1106,  1107,  1113,  1114,
    1115,  1121,  1122,  1130,  1131,  1133,  1134,  1138,  1139,  1143,
    1149,  1155,  1156,  1161,  1162,  1166,  1167,  1171,  1172,  1174,
    1175,  1177,  1179,  1183,  1185,  1191,  1197,  1198,  1201,  1202,
    1203,  1211,  1212,  1222,  1224,  1228,  1230,  1232,  1233,  1236,
    1237,  1241,  1243,  1247,  1248,  1255,  1257,  1258,  1263,  1269,
    1271,  1273,  1275,  1279,  1283,  1285,  1289,  1291,  1293,  1294,
    1298,  1300,  1304,  1305,  1310,  1312,  1313,  1315,  1318,  1320,
    1324,  1329,  1333,  1337,  1341,  1346,  1351,  1355,  1356,  1357,
    1364,  1365,  1367,  1368,  1370,  1372,  1375,  1377,  1379,  1380,
    1382,  1384,  1387,  1389,  1390,  1394,  1395,  1397,  1399,  1402,
    1404,  1407,  1411,  1415,  1419,  1423,  1427,  1431,  1435,  1439,
    1443,  1447,  1451,  1455,  1459,  1463,  1467,  1473,  1475,  1477,
    1481,  1486,  1491,  1494,  1497,  1500,  1504,  1508,  1513,  1518,
    1520,  1522,  1524,  1526,  1528,  1530,  1532,  1534,  1536,  1538,
    1540,  1542,  1545,  1547,  1549,  1551,  1553,  1555,  1559,  1561,
    1563,  1566,  1569,  1577,  1586,  1595,  1604,  1613,  1616,  1619,
    1620,  1622,  1625,  1626,  1628,  1631,  1632,  1637,  1641,  1645,
    1649,  1651,  1654,  1656,  1658,  1662,  1665,  1669,  1672,  1675,
    1677,  1681,  1685,  1688,  1692,  1694,  1696,  1699,  1701,  1703,
    1706,  1708,  1710,  1712,  1715,  1719,  1722,  1726,  1729,  1732,
    1736,  1740,  1744,  1745,  1752,  1753,  1760,  1763,  1765,  1767,
    1769,  1771,  1773,  1775,  1777,  1779,  1781,  1783,  1785,  1788,
    1791,  1793,  1796,  1798,  1801,  1805,  1808,  1810,  1812,  1814,
    1816,  1818,  1820,  1822,  1825,  1826,  1828,  1830,  1836,  1837,
    1839,  1842,  1844,  1846,  1848,  1850,  1854,  1858,  1862,  1866,
    1867,  1869,  1870,  1872,  1873,  1875,  1878,  1880,  1882,  1885,
    1888,  1893,  1895,  1899,  1902,  1904,  1907,  1910,  1913,  1916,
    1918,  1921,  1923,  1925,  1927,  1929,  1931,  1932,  1935,  1937,
    1939,  1941,  1943,  1945,  1946,  1949,  1951,  1953,  1954,  1956,
    1957,  1960,  1962,  1965,  1969,  1972,  1973,  1975,  1976,  1978,
    1980,  1983,  1984,  1986,  1987,  1992,  1994,  1999,  2003,  2005,
    2006,  2008,  2011,  2013,  2017,  2021,  2024,  2027,  2030,  2032,
    2034,  2037,  2040,  2043,  2045,  2048,  2051,  2053,  2055,  2056,
    2058,  2060,  2062,  2064,  2065,  2067,  2069,  2071,  2072,  2074,
    2077,  2078,  2080,  2081,  2083,  2084,  2086,  2088,  2091,  2093,
    2096,  2098,  2101,  2104,  2107,  2111,  2113,  2115,  2117,  2119,
    2123,  2125,  2127,  2129,  2134,  2137,  2139,  2144,  2145,  2147,
    2148,  2151,  2153,  2157,  2158,  2165,  2166,  2172,  2180,  2181,
    2187,  2188,  2194,  2195,  2201,  2202,  2207,  2208,  2219,  2223,
    2228,  2232,  2236,  2244,  2245,  2249,  2251,  2256,  2257,  2261,
    2262,  2265,  2266,  2268,  2269,  2272,  2275,  2278,  2281,  2283,
    2285,  2287,  2291,  2296,  2297,  2304,  2309,  2310,  2316,  2317,
    2324,  2329,  2331,  2334,  2336,  2338,  2339,  2345,  2346,  2350,
    2353,  2354,  2360,  2361,  2362,  2369,  2371,  2375,  2377,  2379,
    2383,  2386,  2390,  2393,  2398,  2399,  2406,  2407,  2408,  2417,
    2422,  2427,  2431,  2435,  2438,  2441,  2448,  2454,  2458,  2464,
    2466,  2468,  2470,  2471,  2473,  2474,  2476,  2477,  2479,  2481,
    2482,  2485,  2487,  2488,  2490,  2492,  2494,  2495,  2501,  2505,
    2506,  2512,  2516,  2520,  2521,  2525,  2526,  2529,  2531,  2535,
    2536,  2538,  2540,  2541,  2544,  2546,  2550,  2551,  2558,  2559,
    2566,  2567,  2573,  2574,  2576,  2578,  2579,  2586,  2587,  2589,
    2591,  2594,  2596,  2598,  2600,  2601,  2607,  2610,  2611,  2617,
    2618,  2620,  2622,  2625,  2627,  2629,  2631,  2633,  2635,  2638,
    2639,  2645,  2646,  2648,  2650,  2651,  2656,  2661,  2665,  2671,
    2673,  2677,  2681,  2687,  2689,  2693,  2696,  2698,  2700,  2701,
    2708,  2710,  2714,  2718,  2719,  2722,  2723,  2728,  2729,  2732,
    2734,  2737,  2742,  2745,  2749,  2750,  2754,  2755,  2756,  2763,
    2766,  2768,  2770,  2773,  2776,  2785,  2790,  2791,  2793,  2796,
    2798,  2800,  2802,  2804,  2806,  2808,  2810,  2812,  2814,  2816,
    2818,  2819,  2822,  2827,  2831,  2833,  2835,  2840,  2841,  2842,
    2844,  2846,  2847,  2850,  2853,  2855,  2857,  2858,  2861,  2865,
    2869,  2873,  2876,  2880,  2885,  2889,  2894,  2898,  2903,  2905,
    2909,  2914,  2918,  2922,  2929,  2931,  2937,  2944,  2950,  2958,
    2965,  2974,  2980,  2987,  2992,  2997,  3003,  3007,  3012,  3014,
    3018,  3022,  3026,  3030,  3034,  3038,  3044,  3050,  3054,  3058,
    3062,  3066,  3070,  3074,  3076,  3078,  3080,  3082,  3084,  3086,
    3088,  3090,  3092,  3094,  3096,  3098,  3100,  3102,  3104,  3106,
    3108,  3110,  3112,  3114,  3116,  3118,  3122,  3124,  3126,  3128,
    3130,  3134,  3137,  3140,  3143,  3146,  3150,  3154,  3160,  3167,
    3172,  3177,  3185,  3188,  3195,  3201,  3208,  3215,  3220,  3225,
    3231,  3236,  3243,  3246,  3251,  3256,  3261,  3272,  3279,  3288,
    3295,  3300,  3305,  3312,  3317,  3322,  3327,  3334,  3339,  3347,
    3355,  3363,  3370,  3377,  3384,  3391,  3395,  3400,  3407,  3416,
    3419,  3422,  3427,  3436,  3445,  3452,  3459,  3462,  3467,  3474,
    3481,  3490,  3499,  3506,  3515,  3522,  3525,  3530,  3539,  3548,
    3551,  3554,  3557,  3562,  3567,  3572,  3577,  3581,  3590,  3595,
    3602,  3607,  3612,  3617,  3624,  3633,  3640,  3645,  3652,  3654,
    3661,  3666,  3671,  3676,  3681,  3686,  3693,  3698,  3699,  3705,
    3712,  3715,  3719,  3720,  3725,  3726,  3730,  3731,  3733,  3735,
    3739,  3744,  3749,  3755,  3760,  3765,  3770,  3776,  3781,  3782,
    3783,  3791,  3796,  3802,  3807,  3813,  3818,  3823,  3828,  3833,
    3838,  3844,  3845,  3854,  3855,  3859,  3863,  3865,  3870,  3871,
    3873,  3874,  3877,  3878,  3880,  3881,  3885,  3888,  3892,  3895,
    3897,  3900,  3902,  3905,  3907,  3909,  3911,  3914,  3915,  3917,
    3919,  3923,  3925,  3929,  3931,  3935,  3936,  3938,  3939,  3942,
    3947,  3953,  3955,  3957,  3959,  3961,  3966,  3968,  3972,  3976,
    3980,  3981,  3988,  3989,  3996,  3997,  4006,  4011,  4012,  4021,
    4022,  4033,  4040,  4041,  4050,  4051,  4062,  4069,  4071,  4074,
    4077,  4078,  4083,  4087,  4094,  4095,  4099,  4100,  4101,  4107,
    4108,  4110,  4111,  4113,  4114,  4117,  4121,  4125,  4127,  4129,
    4130,  4138,  4139,  4147,  4149,  4152,  4153,  4154,  4157,  4158,
    4161,  4162,  4164,  4166,  4168,  4170,  4174,  4176,  4180,  4182,
    4184,  4186,  4188,  4190,  4192,  4194,  4196,  4198,  4200,  4202,
    4204,  4206,  4208,  4210,  4212,  4214,  4216,  4218,  4220,  4222,
    4224,  4226,  4228,  4230,  4232,  4234,  4235,  4237,  4239,  4240,
    4243,  4244,  4246,  4247,  4248,  4252,  4253,  4254,  4258,  4261,
    4262,  4263,  4268,  4273,  4276,  4277,  4280,  4283,  4287,  4291,
    4293,  4296,  4297,  4299,  4300,  4305,  4310,  4313,  4314,  4316,
    4318,  4319,  4321,  4322,  4324,  4327,  4329,  4333,  4337,  4339,
    4341,  4343,  4345,  4346,  4349,  4351,  4353,  4355,  4357,  4359,
    4361,  4363,  4365,  4367,  4369,  4371,  4373,  4375,  4377,  4379,
    4381,  4383,  4385,  4387,  4389,  4391,  4393,  4395,  4396,  4397,
    4404,  4405,  4407,  4411,  4413,  4417,  4418,  4421,  4425,  4427,
    4430,  4432,  4433,  4437,  4438,  4439,  4447,  4450,  4452,  4453,
    4457,  4464,  4465,  4472,  4477,  4484,  4489,  4494,  4499,  4505,
    4510,  4515,  4521,  4528,  4533,  4535,  4539,  4541,  4543,  4547,
    4549,  4550,  4553,  4554,  4556,  4557,  4558,  4567,  4568,  4569,
    4576,  4577,  4579,  4581,  4583,  4585,  4587,  4590,  4592,  4594,
    4596,  4600,  4605,  4606,  4610,  4614,  4616,  4619,  4622,  4623,
    4627,  4628,  4634,  4638,  4640,  4644,  4646,  4650,  4652,  4654,
    4655,  4657,  4658,  4663,  4664,  4666,  4670,  4672,  4674,  4676,
    4677,  4678,  4685,  4686,  4687,  4699,  4703,  4705,  4709,  4713,
    4715,  4719,  4720,  4722,  4723,  4728,  4729,  4736,  4737,  4743,
    4744,  4751,  4753,  4757,  4761,  4767,  4768,  4771,  4772,  4775,
    4777,  4779,  4781,  4785,  4786,  4788,  4789,  4791,  4793,  4797,
    4799,  4801,  4804,  4807,  4810,  4812,  4814,  4816,  4818,  4819,
    4823,  4824,  4828,  4831,  4836,  4841,  4845,  4850,  4855,  4858,
    4860,  4864,  4868,  4875,  4892,  4895,  4898,  4899,  4906,  4912,
    4915,  4918,  4921,  4923,  4925,  4927,  4933,  4939,  4942,  4945,
    4947,  4952,  4956,  4959,  4962,  4965,  4969,  4972,  4975,  4977,
    4981,  4986,  4990,  4994,  4997,  5000,  5004,  5008,  5012,  5016,
    5020,  5024,  5028,  5032,  5034,  5036,  5038,  5040,  5042,  5043,
    5045,  5046,  5049,  5050,  5052,  5054,  5056,  5057,  5060,  5061,
    5064,  5065,  5068,  5071,  5072,  5077,  5078,  5083,  5085,  5087,
    5088,  5090,  5092,  5093,  5095,  5097,  5098,  5103,  5107,  5109,
    5110,  5114,  5119,  5122,  5124,  5126,  5128,  5130,  5132,  5134,
    5136,  5138,  5139,  5141,  5142,  5146,  5150,  5152,  5154,  5156,
    5159,  5160,  5164,  5168,  5171,  5174,  5178,  5179,  5181,  5183,
    5186,  5187,  5192,  5198,  5199,  5200,  5201,  5219,  5222,  5223,
    5225,  5226,  5228,  5230,  5231,  5233,  5235,  5236,  5239,  5242,
    5244,  5248,  5253,  5257,  5261,  5262,  5265,  5268,  5270,  5274,
    5278,  5279,  5283,  5284,  5288,  5291,  5295,  5297,  5299,  5302,
    5303,  5306,  5308,  5310,  5313,  5316,  5318,  5320,  5322,  5324,
    5326,  5329,  5332,  5334,  5336,  5338,  5340,  5342,  5344,  5346,
    5349,  5352,  5355,  5358,  5361,  5363,  5365,  5367,  5369,  5371,
    5373,  5375,  5379,  5385,  5387,  5389,  5391,  5393,  5395,  5399,
    5404,  5410,  5412,  5418,  5422,  5425,  5427,  5431,  5434,  5437,
    5442,  5444,  5446,  5448,  5450,  5452,  5454,  5456,  5458,  5460,
    5462,  5464,  5466,  5468,  5470,  5474,  5477,  5479,  5481,  5483,
    5485,  5487,  5489,  5491,  5493,  5495,  5497,  5499,  5501,  5503,
    5505,  5507,  5509,  5511,  5513,  5515,  5517,  5519,  5521,  5523,
    5525,  5527,  5529,  5531,  5533,  5535,  5537,  5539,  5541,  5543,
    5545,  5547,  5549,  5551,  5553,  5555,  5557,  5559,  5561,  5563,
    5565,  5567,  5569,  5571,  5573,  5575,  5577,  5579,  5581,  5583,
    5585,  5587,  5589,  5591,  5593,  5595,  5597,  5599,  5601,  5603,
    5605,  5607,  5609,  5611,  5613,  5615,  5617,  5619,  5621,  5623,
    5625,  5627,  5629,  5631,  5633,  5635,  5637,  5639,  5641,  5643,
    5645,  5647,  5649,  5651,  5653,  5655,  5657,  5659,  5661,  5663,
    5665,  5667,  5669,  5671,  5673,  5675,  5677,  5679,  5681,  5683,
    5685,  5687,  5689,  5691,  5693,  5695,  5697,  5699,  5701,  5703,
    5705,  5707,  5709,  5711,  5713,  5715,  5717,  5719,  5721,  5723,
    5725,  5727,  5729,  5731,  5733,  5735,  5737,  5739,  5741,  5743,
    5745,  5747,  5749,  5751,  5753,  5755,  5757,  5759,  5761,  5763,
    5765,  5767,  5769,  5771,  5773,  5775,  5777,  5779,  5781,  5783,
    5785,  5787,  5789,  5791,  5793,  5795,  5797,  5799,  5801,  5803,
    5805,  5807,  5809,  5811,  5813,  5815,  5817,  5819,  5821,  5823,
    5825,  5827,  5829,  5831,  5833,  5835,  5837,  5839,  5841,  5843,
    5845,  5847,  5849,  5851,  5853,  5855,  5857,  5859,  5861,  5863,
    5865,  5867,  5869,  5871,  5873,  5875,  5877,  5879,  5881,  5883,
    5885,  5887,  5889,  5891,  5893,  5895,  5897,  5899,  5901,  5903,
    5905,  5907,  5909,  5911,  5913,  5915,  5917,  5919,  5921,  5923,
    5925,  5927,  5929,  5931,  5933,  5935,  5937,  5939,  5941,  5943,
    5945,  5947,  5949,  5951,  5953,  5955,  5957,  5959,  5961,  5963,
    5965,  5967,  5969,  5971,  5973,  5975,  5977,  5979,  5981,  5983,
    5985,  5987,  5989,  5991,  5993,  5995,  5997,  5999,  6001,  6003,
    6005,  6007,  6009,  6011,  6013,  6015,  6017,  6019,  6021,  6023,
    6025,  6027,  6029,  6031,  6033,  6035,  6037,  6039,  6041,  6043,
    6045,  6047,  6049,  6051,  6053,  6055,  6057,  6059,  6061,  6063,
    6065,  6067,  6069,  6071,  6073,  6075,  6077,  6079,  6081,  6083,
    6085,  6087,  6089,  6091,  6093,  6095,  6097,  6098,  6103,  6104,
    6106,  6108,  6112,  6113,  6116,  6118,  6120,  6122,  6124,  6125,
    6127,  6128,  6130,  6132,  6134,  6135,  6138,  6141,  6144,  6146,
    6149,  6154,  6160,  6165,  6172,  6175,  6179,  6183,  6187,  6193,
    6195,  6199,  6203,  6206,  6209,  6212,  6214,  6216,  6221,  6226,
    6228,  6230,  6232,  6234,  6236,  6237,  6242,  6244,  6246,  6248,
    6252,  6256,  6258,  6260,  6263,  6266,  6267,  6271,  6276,  6280,
    6281,  6289,  6291,  6294,  6296,  6298,  6300,  6302,  6304,  6306,
    6307,  6313,  6315,  6317,  6319,  6321,  6323,  6327,  6334,  6341,
    6348,  6356,  6360,  6369,  6378,  6387,  6388,  6390,  6392,  6395,
    6396,  6398,  6400,  6404,  6405,  6409,  6410,  6414,  6415,  6419,
    6420,  6424,  6426,  6428,  6430,  6432,  6434,  6436,  6438,  6440,
    6442,  6444,  6446,  6449,  6452,  6454,  6458,  6461,  6464,  6467,
    6470,  6473,  6476,  6479,  6482,  6484,  6486,  6487,  6489,  6493,
    6495,  6498,  6501,  6504,  6506,  6510,  6514,  6516,  6518,  6522,
    6524,  6528,  6533,  6539,  6541,  6542,  6546,  6550,  6552,  6554,
    6555,  6558,  6561,  6564,  6567,  6568,  6571,  6574,  6576,  6579,
    6582,  6585,  6588,  6591,  6592,  6596,  6597,  6599,  6600,  6604,
    6607,  6608,  6610,  6613,  6614,  6616,  6621,  6626,  6632,  6635,
    6639,  6640,  6642,  6643,  6648,  6649,  6651,  6653,  6654,  6657,
    6660,  6662,  6663,  6665,  6667,  6668,  6674,  6681,  6682,  6683,
    6686,  6689,  6693,  6695,  6697,  6699,  6701,  6703,  6705,  6707,
    6709,  6711,  6713,  6715,  6717,  6719,  6720,  6724,  6726,  6729,
    6731,  6734,  6738,  6742,  6746,  6747,  6751,  6755,  6756,  6764,
    6765,  6769,  6771,  6775,  6776,  6780,  6783,  6788,  6789,  6793,
    6798,  6803,  6804,  6805,  6806,  6823,  6832,  6840,  6841,  6842,
    6843,  6844,  6845,  6861,  6862,  6863,  6864,  6865,  6878,  6883,
    6888,  6892,  6897,  6901,  6904,  6906,  6910,  6916,  6918,  6920,
    6921,  6923,  6925,  6926,  6929,  6930,  6931,  6935,  6936,  6939,
    6945
};

/* YYRHS -- A `-1'-separated list of the rules' RHS.  */
static const yytype_int16 yyrhs[] =
{
     590,     0,    -1,   141,    -1,    -1,   593,   591,   585,   592,
      -1,   593,   141,    -1,    -1,   141,    -1,   594,    -1,  1361,
      -1,   918,    -1,   979,    -1,   969,    -1,   981,    -1,   641,
      -1,   606,    -1,   982,    -1,   971,    -1,  1367,    -1,   611,
      -1,   595,    -1,  1203,    -1,  1233,    -1,  1157,    -1,  1159,
      -1,   599,    -1,  1239,    -1,  1336,    -1,  1327,    -1,   604,
      -1,  1167,    -1,  1425,    -1,  1253,    -1,  1256,    -1,  1319,
      -1,   987,    -1,   995,    -1,   773,    -1,   999,    -1,   597,
      -1,  1249,    -1,  1370,    -1,   990,    -1,   974,    -1,  1170,
      -1,  1245,    -1,   967,    -1,  1334,    -1,  1368,    -1,  1369,
      -1,  1007,    -1,  1302,    -1,  1220,    -1,   956,    -1,   959,
      -1,  1214,    -1,  1426,    -1,  1325,    -1,  1195,    -1,  1255,
      -1,  1417,    -1,   596,   369,  1296,    -1,   108,    -1,   129,
      -1,   369,  1296,   175,   598,    -1,  1293,    -1,   586,  1298,
      -1,    -1,   153,  1296,   600,   601,    -1,    -1,   541,   602,
      -1,   602,   581,   603,    -1,   603,    -1,   586,  1298,    -1,
      -1,   192,   605,  1298,    -1,    -1,    55,   278,   509,   607,
     608,    -1,   609,    -1,   608,   581,   609,    -1,   265,   145,
    1293,    -1,   279,   145,  1293,    -1,   268,   145,  1293,    -1,
     269,   145,  1137,    -1,   264,   145,  1137,    -1,   276,   145,
    1137,    -1,   272,   145,  1293,    -1,   271,   145,  1293,    -1,
     273,   145,  1293,    -1,   274,   145,  1293,    -1,   275,   145,
    1293,    -1,   277,   145,  1137,    -1,   610,    -1,   266,   145,
    1293,    -1,   267,   145,  1139,    -1,   396,   145,  1293,    -1,
     397,   145,  1137,    -1,    -1,    88,   821,   493,   824,  1289,
     612,   764,    -1,    -1,    88,   896,   208,  1296,   900,   336,
    1289,   613,   579,   913,   580,   901,    -1,    -1,    88,   897,
     208,  1296,   899,   336,  1289,   614,   579,   913,   580,   902,
      -1,    -1,    88,   898,   208,  1296,   899,   336,  1289,   615,
     579,   913,   580,   903,    -1,    -1,    88,    95,   824,  1296,
     616,   818,    -1,    -1,    88,   617,  1383,    -1,    88,   538,
     634,  1352,    -1,    88,   255,   186,   727,    -1,    88,   491,
     724,    -1,    88,   618,    -1,   437,  1298,   171,    98,   562,
    1298,   341,   579,   619,   580,    -1,   620,    -1,   619,   581,
     620,    -1,   538,  1293,    -1,   195,  1293,    -1,    95,  1293,
      -1,   351,  1293,    -1,   360,  1293,    -1,   451,  1293,    -1,
     366,  1137,    -1,    -1,  1023,   151,   824,   635,   622,   336,
     427,   623,   628,   625,   630,   128,   631,    -1,    -1,   152,
    1028,  1108,   624,   626,   627,    -1,    22,  1028,    -1,    -1,
     137,    -1,   122,   336,   448,    -1,   122,    -1,    -1,   470,
    1028,    -1,    -1,   140,  1028,    -1,    -1,   629,    -1,   336,
      74,   370,    -1,   336,    74,   325,   370,    -1,    -1,    70,
    1293,    -1,    -1,   632,   633,    -1,   673,    -1,   675,    -1,
     671,    -1,   692,    -1,   710,    -1,   712,    -1,   707,    -1,
     677,    -1,   679,    -1,   680,    -1,   681,    -1,   682,    -1,
     684,    -1,    -1,  1296,   587,  1296,    -1,  1296,    -1,    -1,
     636,   638,    -1,    -1,   637,   639,    -1,    70,  1293,    -1,
     234,   466,    -1,   327,   466,    -1,    81,   466,    -1,   384,
     466,    98,    -1,   303,   466,    98,    -1,   640,    -1,   638,
      -1,   120,    -1,  1034,   120,    -1,   466,   430,   113,    -1,
     466,   430,   221,    -1,    -1,    49,   635,   642,   643,    -1,
      -1,   579,   644,   580,    -1,    -1,   645,    -1,   645,   581,
    1028,    -1,  1028,    -1,    -1,   647,    -1,   647,   581,   649,
      -1,   649,    -1,    -1,  1296,   648,   847,    -1,    -1,   651,
      -1,   651,   581,   652,    -1,   652,    -1,   653,   648,  1296,
     847,    -1,    -1,   222,    -1,   350,    -1,   213,    -1,    -1,
     654,   670,   585,    -1,   670,   585,    -1,   655,   670,   585,
      -1,    -1,   656,   657,   585,    -1,    -1,   111,   668,   658,
     847,   669,    -1,   111,  1296,    77,   172,   665,    -1,    -1,
     111,   662,   189,   172,   659,   663,   670,    -1,   111,  1296,
      93,   172,   660,    -1,    -1,   661,  1007,    -1,   155,    -1,
      83,    -1,   664,    -1,   663,   581,   664,    -1,   667,    -1,
    1137,    -1,   458,   666,  1294,    -1,    -1,   546,    -1,   665,
      -1,  1296,    -1,   459,    -1,  1034,   173,    -1,   457,    -1,
    1296,    -1,   668,   581,  1296,    -1,    -1,   112,  1028,    -1,
     673,    -1,   675,    -1,   671,    -1,   692,    -1,   710,    -1,
     712,    -1,   707,    -1,   677,    -1,   679,    -1,   680,    -1,
     681,    -1,   682,    -1,   684,    -1,    -1,   204,   672,   687,
     139,   204,    -1,    -1,   674,   594,    -1,    -1,   416,   676,
    1028,    -1,    -1,   678,   716,    -1,   239,  1297,    -1,   228,
    1297,    -1,   339,  1296,    -1,    -1,   163,   685,  1296,   219,
     683,   686,    -1,    63,  1296,    -1,    -1,   321,   175,    -1,
     175,    -1,  1296,    -1,   686,   581,  1296,    -1,    -1,    -1,
      -1,   688,  1028,   501,   689,   655,   690,   691,    -1,    -1,
     136,   687,    -1,   135,   655,    -1,   693,    -1,   696,    -1,
      -1,    -1,    52,   694,  1028,   695,   698,   706,   139,    52,
      -1,    -1,    52,   697,   699,   706,   139,    52,    -1,   700,
      -1,   698,   700,    -1,   703,    -1,   699,   703,    -1,    -1,
      -1,   557,   701,  1028,   702,   501,   655,    -1,    -1,    -1,
     557,   704,  1028,   705,   501,   655,    -1,    -1,   135,   655,
      -1,    -1,  1297,   588,   708,   716,   709,    -1,    -1,  1297,
      -1,    -1,  1297,   588,   711,   714,   709,    -1,    -1,   713,
     714,    -1,    -1,    30,   715,   656,   654,   139,    -1,   261,
     655,   139,   261,    -1,    -1,    -1,   559,   717,  1028,   128,
     718,   655,   139,   559,    -1,    -1,   406,   655,   534,   719,
    1028,   139,   406,    -1,    29,    -1,     8,    -1,   215,    -1,
     535,    -1,   116,    -1,   749,   751,    -1,   749,    55,   746,
     730,    -1,   749,     6,   746,   725,   734,    -1,    -1,   540,
     255,   186,  1296,    -1,   749,     6,   746,   737,    -1,   749,
     129,   746,   737,    -1,   750,   729,   740,    -1,   750,   729,
     743,    -1,     6,   747,    -1,     6,   748,    -1,    -1,   731,
     732,    -1,   733,    -1,   732,   733,    -1,   732,   581,   733,
      -1,   752,    -1,   753,    -1,   754,    -1,   735,    -1,   736,
      -1,   735,   736,    -1,   735,   581,   736,    -1,   752,    -1,
     753,    -1,   754,    -1,   755,    -1,   758,    -1,   760,    -1,
     762,    -1,   759,    -1,   738,    -1,   739,    -1,   738,   739,
      -1,   738,   581,   739,    -1,   752,    -1,   753,    -1,   754,
      -1,   760,    -1,   762,    -1,   741,    -1,   742,    -1,   741,
     742,    -1,   741,   581,   742,    -1,   752,    -1,   756,    -1,
     757,    -1,   758,    -1,   760,    -1,   762,    -1,   759,    -1,
     744,    -1,   745,    -1,   744,   745,    -1,   744,   581,   745,
      -1,   752,    -1,   760,    -1,   762,    -1,    97,  1293,    -1,
     524,  1293,    -1,   391,  1293,    -1,  1296,    -1,  1296,    -1,
     385,    -1,   387,    -1,   325,     4,    -1,   210,  1187,   763,
      -1,    24,  1187,   763,    -1,   284,  1187,   763,    -1,   158,
    1187,   763,    -1,   525,  1187,   763,    -1,   392,  1187,   763,
      -1,   322,  1187,  1138,    -1,    70,  1187,  1293,    -1,  1226,
     143,  1187,   831,    -1,    -1,   762,    -1,   554,    -1,   328,
      -1,  1138,    -1,   201,    -1,   579,   765,    -1,   825,   770,
     767,    -1,   244,  1289,    -1,   579,   244,  1289,   580,    -1,
     837,   580,   825,   770,   767,    -1,    -1,   770,   814,   580,
     766,  1374,    -1,    -1,    -1,  1264,   817,   814,   768,  1371,
      -1,    -1,  1264,   817,   579,   814,   580,   769,  1374,    -1,
      -1,   771,    -1,    -1,   359,   772,   775,    -1,    -1,   359,
     774,   775,    -1,    46,   776,   786,   787,   794,    -1,   780,
     232,   579,   781,   580,    -1,    -1,   780,   190,   777,   784,
      -1,    -1,   383,   778,   784,    -1,    -1,   249,   779,   784,
      -1,    -1,   246,    -1,    -1,   782,    -1,   783,    -1,   782,
     581,   783,    -1,  1296,    -1,   579,  1023,   792,  1024,   580,
      -1,   579,  1023,   792,  1024,   580,    -1,    -1,   358,  1138,
      -1,    -1,    -1,   482,    46,   780,   190,   785,   788,   793,
      -1,    -1,   482,    46,   780,   232,   579,   790,   580,   789,
     793,    -1,   791,    -1,   790,   581,   791,    -1,  1296,    -1,
    1031,    -1,    -1,   481,  1138,    -1,    -1,   579,   795,   580,
      -1,   796,    -1,   795,   581,   796,    -1,    -1,   359,   797,
     798,   799,   811,   806,    -1,  1296,    -1,    -1,   545,   241,
     500,   800,    -1,   545,   222,   579,   803,   580,    -1,   801,
      -1,   802,    -1,   288,    -1,   579,   288,   580,    -1,   579,
     805,   580,    -1,   804,    -1,   803,   581,   804,    -1,   805,
      -1,  1031,    -1,    -1,   579,   807,   580,    -1,   808,    -1,
     807,   581,   808,    -1,    -1,   482,   809,   810,   811,    -1,
    1298,    -1,    -1,   812,    -1,   812,   813,    -1,   813,    -1,
     491,  1187,  1298,    -1,  1226,   143,  1187,   831,    -1,   322,
    1187,  1138,    -1,   283,  1187,  1140,    -1,   300,  1187,  1140,
      -1,    98,   121,  1187,  1293,    -1,   208,   121,  1187,  1293,
      -1,    70,  1187,  1293,    -1,    -1,    -1,   431,   815,  1017,
    1021,   816,   835,    -1,    -1,    18,    -1,    -1,   819,    -1,
     820,    -1,   819,   820,    -1,   830,    -1,   829,    -1,    -1,
     822,    -1,   823,    -1,   823,   822,    -1,   495,    -1,    -1,
     204,  1034,   154,    -1,    -1,   827,    -1,   828,    -1,   828,
     826,    -1,   828,    -1,   828,   827,    -1,   828,   581,   827,
      -1,   143,  1187,   831,    -1,   518,  1187,   831,    -1,   283,
    1187,  1139,    -1,   300,  1187,  1139,    -1,    26,  1187,  1137,
      -1,   360,  1187,  1293,    -1,    70,  1187,  1293,    -1,    25,
    1187,  1139,    -1,   352,  1187,  1137,    -1,   352,  1187,   112,
      -1,    59,  1187,  1137,    -1,   494,  1187,  1137,    -1,   115,
    1187,  1137,    -1,   423,  1187,   833,    -1,   529,  1187,   579,
    1244,   580,    -1,   829,    -1,   830,    -1,   216,  1187,   834,
      -1,    98,   121,  1187,  1293,    -1,   208,   121,  1187,  1293,
      -1,   491,  1296,    -1,   476,   124,    -1,   476,   293,    -1,
      78,  1187,  1293,    -1,   231,  1187,  1137,    -1,   878,   869,
    1187,   871,    -1,   878,    66,  1187,   877,    -1,  1298,    -1,
    1298,    -1,   112,    -1,   166,    -1,   133,    -1,    75,    -1,
     393,    -1,    73,    -1,   327,    -1,   165,    -1,   235,    -1,
    1132,    -1,  1016,  1020,    -1,   478,    -1,   388,    -1,   110,
      -1,   220,    -1,   838,    -1,   837,   581,   838,    -1,   839,
      -1,   840,    -1,   845,   841,    -1,   845,   883,    -1,   891,
     915,   900,   579,   913,   580,   901,    -1,   897,   894,   915,
     899,   579,   913,   580,   902,    -1,   898,   894,   915,   899,
     579,   913,   580,   903,    -1,   843,   892,   915,   900,   579,
     913,   580,   901,    -1,   843,   171,   232,   915,   579,   913,
     580,   883,    -1,   844,   841,    -1,   843,   842,    -1,    -1,
     842,    -1,    60,  1028,    -1,    -1,   844,    -1,    80,   915,
      -1,    -1,  1288,   846,   847,   865,    -1,   855,   863,   859,
      -1,   856,   864,   859,    -1,   168,   857,   859,    -1,    38,
      -1,    38,   862,    -1,    43,    -1,    42,    -1,   851,   862,
     879,    -1,   851,   879,    -1,   852,   862,   880,    -1,   852,
     880,    -1,    33,   862,    -1,    33,    -1,   853,   862,   879,
      -1,   854,   862,   880,    -1,   547,   862,    -1,   568,   863,
     859,    -1,   102,    -1,   505,    -1,   502,   863,    -1,    99,
      -1,   506,    -1,    40,   863,    -1,   850,    -1,   289,    -1,
     257,    -1,   260,   547,    -1,   260,   853,   879,    -1,   508,
     879,    -1,   499,   863,   879,    -1,   291,   879,    -1,   258,
     879,    -1,   110,   857,   859,    -1,   332,   857,   859,    -1,
     166,   857,   859,    -1,    -1,   144,   848,   579,   917,   580,
     879,    -1,    -1,   439,   849,   579,   917,   580,   879,    -1,
     260,   879,    -1,   435,    -1,   181,    -1,   180,    -1,   364,
      -1,   308,    -1,   248,    -1,   307,    -1,   365,    -1,   309,
      -1,    58,    -1,   316,    -1,   313,    58,    -1,   851,   551,
      -1,   548,    -1,   313,   548,    -1,   333,    -1,   316,   548,
      -1,   313,    58,   551,    -1,   316,   551,    -1,   220,    -1,
     507,    -1,   449,    -1,   290,    -1,    32,    -1,   388,    -1,
     127,    -1,   127,   368,    -1,    -1,   862,    -1,   858,    -1,
     579,   331,   581,   331,   580,    -1,    -1,   860,    -1,   860,
     861,    -1,   861,    -1,   446,    -1,   533,    -1,   569,    -1,
     579,   259,   580,    -1,   579,   520,   580,    -1,   579,   109,
     580,    -1,   579,   331,   580,    -1,    -1,   862,    -1,    -1,
     858,    -1,    -1,   866,    -1,   866,   867,    -1,   867,    -1,
     330,    -1,  1034,   330,    -1,   112,   868,    -1,   336,   535,
     326,  1027,    -1,    25,    -1,   435,   112,   546,    -1,   882,
     232,    -1,   530,    -1,   530,   232,    -1,    70,  1293,    -1,
      66,   875,    -1,   326,  1027,    -1,  1279,    -1,    58,   439,
      -1,    57,    -1,  1298,    -1,    33,    -1,   870,    -1,   112,
      -1,    -1,   869,   871,    -1,  1298,    -1,    33,    -1,   873,
      -1,   112,    -1,  1298,    -1,    -1,    66,   877,    -1,   875,
      -1,   112,    -1,    -1,   112,    -1,    -1,    20,   880,    -1,
      47,    -1,   527,   880,    -1,   869,   870,   880,    -1,    33,
     881,    -1,    -1,    33,    -1,    -1,    20,    -1,   527,    -1,
     869,   870,    -1,    -1,   372,    -1,    -1,   394,  1289,   884,
     885,    -1,   887,    -1,   579,   886,   580,   887,    -1,   886,
     581,  1296,    -1,  1296,    -1,    -1,   888,    -1,   888,   889,
      -1,   889,    -1,   336,   116,   890,    -1,   336,   535,   890,
      -1,   280,   176,    -1,   280,   356,    -1,   280,   447,    -1,
     413,    -1,    50,    -1,   439,   330,    -1,   327,     5,    -1,
     439,   112,    -1,   893,    -1,   372,   232,    -1,   530,   894,
      -1,   232,    -1,   208,    -1,    -1,   893,    -1,   230,    -1,
     208,    -1,   207,    -1,    -1,   530,    -1,   177,    -1,   455,
      -1,    -1,   899,    -1,   899,   907,    -1,    -1,   904,    -1,
      -1,   906,    -1,    -1,   905,    -1,   909,    -1,   904,   909,
      -1,   910,    -1,   905,   910,    -1,   911,    -1,   906,   911,
      -1,   541,   912,    -1,   518,   912,    -1,   231,  1187,  1137,
      -1,   908,    -1,   907,    -1,   908,    -1,   908,    -1,   560,
     355,  1292,    -1,    45,    -1,   425,    -1,   190,    -1,   913,
     581,   914,  1130,    -1,   914,  1130,    -1,  1296,    -1,  1296,
     579,   331,   580,    -1,    -1,  1288,    -1,    -1,   587,  1296,
      -1,  1277,    -1,   917,   581,  1277,    -1,    -1,    13,   952,
     493,  1289,   919,   930,    -1,    -1,    13,    95,   929,   920,
     819,    -1,    13,    95,  1296,   536,    98,   121,   312,    -1,
      -1,    13,   374,   635,   921,   636,    -1,    -1,    13,   178,
     635,   922,   636,    -1,    -1,    13,  1391,  1386,   923,  1393,
      -1,    -1,    13,  1386,   924,  1393,    -1,    -1,    13,  1386,
     151,   635,   925,   926,   927,   625,   630,   928,    -1,    13,
     491,   726,    -1,    13,   255,   186,   728,    -1,    13,   491,
     723,    -1,    13,   491,   722,    -1,    13,   437,  1298,   341,
     579,   619,   580,    -1,    -1,   336,   427,   623,    -1,   629,
      -1,   336,   427,   623,   629,    -1,    -1,   402,   509,   635,
      -1,    -1,   128,   631,    -1,    -1,  1296,    -1,    -1,   123,
     491,    -1,   206,   491,    -1,   945,   770,    -1,   945,   934,
      -1,   934,    -1,   771,    -1,   936,    -1,   129,   359,   943,
      -1,   389,   359,   989,   935,    -1,    -1,   340,   359,   989,
     935,   931,   989,    -1,    14,   359,   989,   935,    -1,    -1,
      60,   359,   935,   932,   984,    -1,    -1,   404,   359,   989,
     935,   933,   976,    -1,    64,   359,   989,  1138,    -1,   939,
      -1,   401,   357,    -1,    12,    -1,   943,    -1,    -1,     6,
     359,   989,   937,   938,    -1,    -1,   579,   795,   580,    -1,
     358,  1138,    -1,    -1,   403,   359,   989,   940,   941,    -1,
      -1,    -1,   943,   942,   219,   579,   795,   580,    -1,   944,
      -1,   943,   581,   944,    -1,  1296,    -1,   947,    -1,   945,
     581,   947,    -1,     6,   951,    -1,   946,   839,   954,    -1,
       6,   840,    -1,   946,   579,   837,   580,    -1,    -1,    55,
     951,  1288,   948,   845,   954,    -1,    -1,    -1,   304,   951,
    1288,   949,   847,   865,   950,   954,    -1,   129,   951,  1288,
     953,    -1,   129,   171,   232,   915,    -1,   129,   372,   232,
      -1,   129,   893,  1288,    -1,   122,   230,    -1,   137,   230,
      -1,    13,   951,  1288,   439,   112,  1279,    -1,    13,   951,
    1288,   129,   112,    -1,   402,   955,  1289,    -1,    85,   509,
     869,   871,   876,    -1,   826,    -1,   170,    -1,  1123,    -1,
      -1,    69,    -1,    -1,   205,    -1,    -1,   413,    -1,    50,
      -1,    -1,     8,  1296,    -1,   165,    -1,    -1,   509,    -1,
     145,    -1,    18,    -1,    -1,   471,   448,   961,   957,   965,
      -1,   475,   448,   961,    -1,    -1,   448,   471,   961,   958,
     965,    -1,   448,   475,   961,    -1,   471,   511,   960,    -1,
      -1,   560,    79,   450,    -1,    -1,   962,   963,    -1,   964,
      -1,   963,   581,   964,    -1,    -1,   467,    -1,   398,    -1,
      -1,   534,   966,    -1,   610,    -1,   966,   581,   610,    -1,
      -1,   412,  1321,   968,  1161,   175,  1293,    -1,    -1,    28,
    1321,   970,  1161,   509,  1293,    -1,    -1,    59,  1321,   972,
    1161,   973,    -1,    -1,   382,    -1,   157,    -1,    -1,   404,
     989,  1321,   975,  1161,   976,    -1,    -1,   977,    -1,   978,
      -1,   978,   977,    -1,   382,    -1,   157,    -1,   539,    -1,
      -1,    14,   989,  1321,   980,  1161,    -1,    34,  1293,    -1,
      -1,    60,  1321,   983,  1161,   984,    -1,    -1,   985,    -1,
     986,    -1,   986,   985,    -1,   382,    -1,   161,    -1,   292,
      -1,   157,    -1,    56,    -1,   172,   536,    -1,    -1,   340,
     989,  1321,   988,  1161,    -1,    -1,   329,    -1,   251,    -1,
      -1,   402,  1321,   991,   993,    -1,   402,   538,   634,   992,
      -1,  1299,   509,  1299,    -1,   992,   581,  1299,   509,  1299,
      -1,   994,    -1,   993,   581,   994,    -1,  1289,   509,  1289,
      -1,    48,   208,   996,   222,   998,    -1,   997,    -1,   996,
     581,   997,    -1,  1289,  1003,    -1,  1296,    -1,   112,    -1,
      -1,   250,   208,   219,    48,  1000,  1001,    -1,  1002,    -1,
    1001,   581,  1002,    -1,  1289,  1003,  1006,    -1,    -1,  1004,
    1005,    -1,    -1,   893,   579,  1104,   580,    -1,    -1,   205,
     238,    -1,  1008,    -1,   431,  1010,    -1,   579,  1009,   580,
    1374,    -1,   431,  1012,    -1,   579,  1009,   580,    -1,    -1,
    1012,  1011,  1371,    -1,    -1,    -1,  1013,  1017,  1021,  1014,
    1015,  1020,    -1,  1126,  1132,    -1,  1152,    -1,  1016,    -1,
    1152,  1016,    -1,  1016,  1152,    -1,   175,  1072,  1115,  1120,
    1117,  1126,  1132,  1143,    -1,   175,   130,  1115,  1132,    -1,
      -1,  1018,    -1,  1018,  1019,    -1,  1019,    -1,   477,    -1,
     194,    -1,   125,    -1,   465,    -1,   460,    -1,   461,    -1,
     463,    -1,   464,    -1,   462,    -1,    12,    -1,    -1,   172,
     535,    -1,   254,   222,   441,   302,    -1,  1021,   581,  1022,
      -1,  1022,    -1,   574,    -1,  1023,  1025,  1024,  1026,    -1,
      -1,    -1,  1283,    -1,  1028,    -1,    -1,    18,  1296,    -1,
      18,  1293,    -1,  1296,    -1,  1293,    -1,    -1,   579,   580,
      -1,  1028,  1032,  1028,    -1,  1028,   566,  1028,    -1,  1028,
    1033,  1028,    -1,   325,  1028,    -1,  1029,   225,   515,    -1,
    1029,   225,  1034,   515,    -1,  1029,   225,   160,    -1,  1029,
     225,  1034,   160,    -1,  1029,   225,   531,    -1,  1029,   225,
    1034,   531,    -1,  1029,    -1,  1029,   225,   330,    -1,  1029,
     225,  1034,   330,    -1,  1029,   146,  1030,    -1,  1029,  1036,
    1030,    -1,  1029,  1036,  1037,   579,  1380,   580,    -1,  1030,
      -1,  1031,   222,   579,  1380,   580,    -1,  1031,  1034,   222,
     579,  1380,   580,    -1,  1031,   222,   579,  1028,   580,    -1,
    1031,   222,   579,  1028,   581,  1065,   580,    -1,  1031,  1034,
     222,   579,  1028,   580,    -1,  1031,  1034,   222,   579,  1028,
     581,  1065,   580,    -1,  1031,    31,  1031,    16,  1030,    -1,
    1031,  1034,    31,  1031,    16,  1030,    -1,  1031,   453,   244,
    1031,    -1,  1031,   244,  1038,  1119,    -1,  1031,  1034,   244,
    1038,  1119,    -1,  1031,   395,  1031,    -1,  1031,  1034,   395,
    1031,    -1,  1031,    -1,  1031,   570,  1031,    -1,  1031,   571,
    1031,    -1,  1031,   442,  1031,    -1,  1031,   443,  1031,    -1,
    1031,   573,  1031,    -1,  1031,   572,  1031,    -1,  1031,   573,
     218,  1028,  1108,    -1,  1031,   572,   218,  1028,  1108,    -1,
    1031,   574,  1031,    -1,  1031,   575,  1031,    -1,  1031,   576,
    1031,    -1,  1031,   126,  1031,    -1,  1031,   305,  1031,    -1,
    1031,   577,  1031,    -1,  1038,    -1,   347,    -1,   344,    -1,
      16,    -1,    15,    -1,   325,    -1,   324,    -1,   582,    -1,
     324,    -1,   145,    -1,   179,    -1,   188,    -1,   236,    -1,
     263,    -1,   318,    -1,    12,    -1,    17,    -1,  1285,    -1,
    1039,    -1,  1040,    -1,  1043,    -1,  1041,    -1,  1038,    66,
    1298,    -1,  1280,    -1,  1278,    -1,  1055,    -1,  1051,    -1,
    1038,   346,  1038,    -1,   573,  1038,    -1,   572,  1038,    -1,
     578,  1038,    -1,  1035,  1038,    -1,   579,  1380,   580,    -1,
     579,  1028,   580,    -1,   579,  1028,   581,  1065,   580,    -1,
     424,   579,  1028,   581,  1065,   580,    -1,   154,   579,  1380,
     580,    -1,   583,  1296,  1028,   584,    -1,   280,  1066,     9,
     579,  1031,  1045,   580,    -1,    33,  1038,    -1,    53,   579,
    1028,    18,  1063,   580,    -1,    52,  1068,  1070,  1069,   139,
      -1,    85,   579,  1028,   581,  1063,   580,    -1,    85,   579,
    1028,   541,   870,   580,    -1,   112,   579,  1285,   580,    -1,
     545,   579,  1286,   580,    -1,   218,  1028,  1108,   573,  1028,
      -1,    58,   579,  1065,   580,    -1,    58,   579,  1065,   541,
     870,   580,    -1,    92,  1027,    -1,   102,   579,  1028,   580,
      -1,   107,   579,  1028,   580,    -1,   200,   579,  1028,   580,
      -1,   215,   579,  1028,   581,  1028,   581,  1028,   581,  1028,
     580,    -1,   218,   579,  1028,   581,  1028,   580,    -1,   218,
     579,  1028,   581,  1028,   581,  1065,   580,    -1,   240,   579,
    1028,   581,  1028,   580,    -1,   299,   579,  1028,   580,    -1,
     306,   579,  1028,   580,    -1,   418,   579,  1028,   581,  1028,
     580,    -1,   429,   579,  1028,   580,    -1,   505,   579,  1028,
     580,    -1,   502,   579,  1028,   580,    -1,   502,   579,  1028,
     581,  1028,   580,    -1,   514,   579,  1028,   580,    -1,   514,
     579,   237,  1028,   175,  1028,   580,    -1,   514,   579,   510,
    1028,   175,  1028,   580,    -1,   514,   579,    44,  1028,   175,
    1028,   580,    -1,   514,   579,   237,   175,  1028,   580,    -1,
     514,   579,   510,   175,  1028,   580,    -1,   514,   579,    44,
     175,  1028,   580,    -1,   514,   579,  1028,   175,  1028,   580,
      -1,   538,   579,   580,    -1,   568,   579,  1028,   580,    -1,
       7,   579,  1028,   581,  1028,   580,    -1,     7,   579,  1028,
     581,   218,  1028,  1108,   580,    -1,    91,  1027,    -1,    94,
    1027,    -1,    94,   579,  1028,   580,    -1,   100,   579,  1028,
     581,   218,  1028,  1108,   580,    -1,   101,   579,  1028,   581,
     218,  1028,  1108,   580,    -1,   159,   579,  1108,   175,  1028,
     580,    -1,   182,   579,  1111,   581,  1028,   580,    -1,   326,
    1027,    -1,   326,   579,  1028,   580,    -1,   367,   579,  1031,
     222,  1028,   580,    -1,   479,   579,  1028,   581,  1028,   580,
      -1,   479,   579,  1028,   581,   218,  1028,  1108,   580,    -1,
     483,   579,  1028,   581,  1028,   581,  1028,   580,    -1,   483,
     579,  1028,   581,  1028,   580,    -1,   483,   579,  1028,   175,
    1028,   172,  1028,   580,    -1,   483,   579,  1028,   175,  1028,
     580,    -1,   489,  1027,    -1,   489,   579,  1028,   580,    -1,
     503,   579,  1109,   581,  1028,   581,  1028,   580,    -1,   504,
     579,  1109,   581,  1028,   581,  1028,   580,    -1,   542,  1027,
      -1,   544,  1027,    -1,   543,  1027,    -1,    20,   579,  1028,
     580,    -1,    57,   579,  1028,   580,    -1,    64,   579,  1065,
     580,    -1,    67,   579,  1028,   580,    -1,    95,   579,   580,
      -1,   204,   579,  1028,   581,  1028,   581,  1028,   580,    -1,
     295,   579,  1028,   580,    -1,   305,   579,  1028,   581,  1028,
     580,    -1,   335,   579,  1028,   580,    -1,   360,   579,  1028,
     580,    -1,   380,   579,  1028,   580,    -1,   406,   579,  1028,
     581,  1028,   580,    -1,   407,   579,  1028,   581,  1028,   581,
    1028,   580,    -1,   516,   579,  1028,   581,  1028,   580,    -1,
     556,   579,  1028,   580,    -1,   556,   579,  1028,   581,  1028,
     580,    -1,  1042,    -1,    81,   579,  1028,   581,  1028,   580,
      -1,   180,   579,  1065,   580,    -1,   248,   579,  1065,   580,
      -1,   307,   579,  1065,   580,    -1,   308,   579,  1065,   580,
      -1,   309,   579,  1065,   580,    -1,   364,   579,  1028,   581,
    1028,   580,    -1,   365,   579,  1065,   580,    -1,    -1,  1292,
     579,  1044,  1048,   580,    -1,  1296,   587,  1296,   579,  1064,
     580,    -1,  1046,  1047,    -1,   222,    42,   302,    -1,    -1,
     222,   314,   234,   302,    -1,    -1,   560,   381,   156,    -1,
      -1,  1049,    -1,  1050,    -1,  1049,   581,  1050,    -1,  1023,
    1028,  1024,  1026,    -1,    27,   579,  1061,   580,    -1,    27,
     579,   125,  1061,   580,    -1,    36,   579,  1061,   580,    -1,
      37,   579,  1061,   580,    -1,    39,   579,  1061,   580,    -1,
      86,   579,  1114,   574,   580,    -1,    86,   579,  1061,   580,
      -1,    -1,    -1,    86,   579,   125,  1052,  1065,  1053,   580,
      -1,   301,   579,  1061,   580,    -1,   301,   579,   125,  1061,
     580,    -1,   285,   579,  1061,   580,    -1,   285,   579,   125,
    1061,   580,    -1,   474,   579,  1061,   580,    -1,   550,   579,
    1061,   580,    -1,   473,   579,  1061,   580,    -1,   552,   579,
    1061,   580,    -1,   484,   579,  1061,   580,    -1,   484,   579,
     125,  1061,   580,    -1,    -1,   187,   579,  1058,  1054,  1065,
    1060,  1059,   580,    -1,    -1,   586,  1056,  1057,    -1,  1298,
     440,  1028,    -1,  1298,    -1,   586,  1311,  1298,   916,    -1,
      -1,   125,    -1,    -1,   433,  1277,    -1,    -1,  1127,    -1,
      -1,  1114,  1062,  1028,    -1,    33,   863,    -1,    58,   863,
     879,    -1,   316,   863,    -1,   446,    -1,   446,   220,    -1,
     533,    -1,   533,   220,    -1,   102,    -1,   505,    -1,    99,
      -1,   110,   857,    -1,    -1,  1065,    -1,  1028,    -1,  1065,
     581,  1028,    -1,  1067,    -1,   579,  1067,   580,    -1,  1285,
      -1,  1067,   581,  1285,    -1,    -1,  1028,    -1,    -1,   135,
    1028,    -1,   557,  1028,   501,  1028,    -1,  1070,   557,  1028,
     501,  1028,    -1,  1084,    -1,  1075,    -1,  1074,    -1,  1071,
      -1,   583,  1296,  1071,   584,    -1,  1073,    -1,  1074,   581,
    1073,    -1,  1071,  1083,  1071,    -1,  1071,   477,  1084,    -1,
      -1,  1071,  1083,  1071,   336,  1076,  1028,    -1,    -1,  1071,
     477,  1084,   336,  1077,  1028,    -1,    -1,  1071,  1083,  1071,
     541,  1078,   579,  1107,   580,    -1,  1071,   314,   229,  1084,
      -1,    -1,  1071,   240,  1093,   229,  1071,   336,  1079,  1028,
      -1,    -1,  1071,   240,  1093,   229,  1084,  1080,   541,   579,
    1107,   580,    -1,  1071,   314,   240,  1093,   229,  1084,    -1,
      -1,  1071,   418,  1093,   229,  1071,   336,  1081,  1028,    -1,
      -1,  1071,   418,  1093,   229,  1084,  1082,   541,   579,  1107,
     580,    -1,  1071,   314,   418,  1093,   229,  1084,    -1,   229,
      -1,   211,   229,    -1,    89,   229,    -1,    -1,  1085,  1289,
    1113,  1102,    -1,  1092,  1091,  1088,    -1,   579,  1091,  1086,
    1374,   580,  1113,    -1,    -1,  1091,  1087,  1074,    -1,    -1,
      -1,  1089,  1017,  1021,  1090,   835,    -1,    -1,   431,    -1,
      -1,   348,    -1,    -1,   172,   229,    -1,   172,   345,    46,
      -1,   172,   186,    46,    -1,   170,    -1,   205,    -1,    -1,
    1095,   893,  1094,  1097,   579,  1106,   580,    -1,    -1,   540,
     893,  1094,  1098,   579,  1104,   580,    -1,  1096,    -1,  1099,
    1096,    -1,    -1,    -1,  1101,  1099,    -1,    -1,  1103,  1100,
      -1,    -1,  1106,    -1,  1296,    -1,   372,    -1,  1105,    -1,
    1106,   581,  1105,    -1,  1296,    -1,  1107,   581,  1296,    -1,
    1110,    -1,   103,    -1,   104,    -1,   105,    -1,   106,    -1,
     197,    -1,   198,    -1,   199,    -1,   297,    -1,   298,    -1,
     428,    -1,   567,    -1,  1110,    -1,   174,    -1,   107,    -1,
     556,    -1,   200,    -1,   299,    -1,   306,    -1,   380,    -1,
     429,    -1,   295,    -1,   568,    -1,   102,    -1,   505,    -1,
      99,    -1,   502,    -1,    -1,    18,    -1,   145,    -1,    -1,
    1112,  1296,    -1,    -1,    12,    -1,    -1,    -1,   558,  1116,
    1028,    -1,    -1,    -1,   191,  1118,  1028,    -1,   149,  1038,
      -1,    -1,    -1,   186,    46,  1121,  1122,    -1,  1121,   581,
    1284,  1130,    -1,  1284,  1130,    -1,    -1,   560,    90,    -1,
     560,   420,    -1,   345,    46,  1124,    -1,  1124,   581,  1125,
      -1,  1125,    -1,  1286,  1130,    -1,    -1,  1127,    -1,    -1,
     345,    46,  1128,  1129,    -1,  1129,   581,  1284,  1130,    -1,
    1284,  1130,    -1,    -1,    19,    -1,   117,    -1,    -1,  1133,
      -1,    -1,  1133,    -1,   245,  1134,    -1,  1135,    -1,  1135,
     581,  1135,    -1,  1135,   334,  1135,    -1,  1278,    -1,   520,
      -1,   259,    -1,   331,    -1,    -1,   245,  1135,    -1,   331,
      -1,   193,    -1,   259,    -1,   520,    -1,   109,    -1,   167,
      -1,   331,    -1,   193,    -1,   259,    -1,   520,    -1,  1141,
      -1,   331,    -1,   520,    -1,   259,    -1,   109,    -1,   167,
      -1,   331,    -1,   520,    -1,   259,    -1,  1141,    -1,  1142,
      -1,   109,    -1,   167,    -1,    -1,    -1,   374,  1296,  1144,
     579,  1145,   580,    -1,    -1,  1146,    -1,  1146,   581,  1147,
      -1,  1147,    -1,  1023,  1028,  1024,    -1,    -1,  1149,  1150,
      -1,  1150,   581,  1151,    -1,  1151,    -1,   586,  1298,    -1,
    1298,    -1,    -1,   219,  1153,  1154,    -1,    -1,    -1,   349,
    1295,  1155,   872,  1156,  1265,  1268,    -1,   131,  1295,    -1,
    1148,    -1,    -1,   128,  1158,  1065,    -1,   129,  1166,  1321,
    1165,  1161,   953,    -1,    -1,   129,   208,  1296,   336,  1289,
    1160,    -1,   129,    95,  1165,  1296,    -1,   129,   178,  1165,
    1296,   587,  1296,    -1,   129,   178,  1165,  1296,    -1,   129,
     374,  1165,   635,    -1,   129,   538,   634,  1351,    -1,   129,
     553,  1165,  1161,   953,    -1,   129,   151,  1165,   635,    -1,
     129,   513,  1165,   635,    -1,   129,   491,   749,   760,   761,
      -1,   129,   255,   186,   750,   760,   761,    -1,   129,   437,
    1165,  1298,    -1,  1162,    -1,  1161,   581,  1162,    -1,  1289,
      -1,  1164,    -1,  1163,   581,  1164,    -1,  1290,    -1,    -1,
     204,   154,    -1,    -1,   495,    -1,    -1,    -1,   215,  1168,
    1173,   952,  1175,  1169,  1177,  1193,    -1,    -1,    -1,   407,
    1171,  1174,  1175,  1172,  1177,    -1,    -1,   262,    -1,   114,
      -1,   194,    -1,  1202,    -1,   114,    -1,   219,  1176,    -1,
    1176,    -1,  1162,    -1,  1180,    -1,   579,   580,  1180,    -1,
     579,  1179,   580,  1180,    -1,    -1,   439,  1178,  1184,    -1,
    1179,   581,  1282,    -1,  1282,    -1,   545,  1183,    -1,   546,
    1183,    -1,    -1,   814,  1181,  1371,    -1,    -1,   579,   814,
     580,  1182,  1374,    -1,  1183,   581,  1188,    -1,  1188,    -1,
    1184,   581,  1185,    -1,  1185,    -1,  1286,  1186,  1192,    -1,
     145,    -1,   440,    -1,    -1,  1186,    -1,    -1,   579,  1189,
    1190,   580,    -1,    -1,  1191,    -1,  1191,   581,  1192,    -1,
    1192,    -1,  1028,    -1,   112,    -1,    -1,    -1,   336,   132,
    1194,   232,   535,  1200,    -1,    -1,    -1,   535,  1196,  1202,
     952,  1072,   439,  1198,  1197,  1115,  1126,  1136,    -1,  1198,
     581,  1199,    -1,  1199,    -1,  1286,  1186,  1192,    -1,  1200,
     581,  1201,    -1,  1201,    -1,  1286,  1186,  1192,    -1,    -1,
     262,    -1,    -1,   116,  1204,  1212,  1205,    -1,    -1,   175,
    1289,  1206,  1115,  1126,  1136,    -1,    -1,  1209,  1207,   175,
    1072,  1115,    -1,    -1,   175,  1163,  1208,   541,  1072,  1115,
      -1,  1210,    -1,  1209,   581,  1210,    -1,  1296,  1211,  1113,
      -1,  1296,   587,  1296,  1211,  1113,    -1,    -1,   587,   574,
      -1,    -1,  1213,  1212,    -1,   382,    -1,   262,    -1,   205,
      -1,   516,  1215,  1162,    -1,    -1,   493,    -1,    -1,  1217,
      -1,  1218,    -1,  1217,   581,  1218,    -1,    87,    -1,   293,
      -1,    41,   223,    -1,    82,   488,    -1,   353,   162,    -1,
     224,    -1,   487,    -1,   454,    -1,    12,    -1,    -1,   172,
     381,   331,    -1,    -1,   444,  1221,  1222,    -1,    96,  1232,
      -1,  1228,   490,  1227,  1232,    -1,  1228,   512,  1227,  1232,
      -1,   150,  1227,  1232,    -1,   493,   472,  1227,  1232,    -1,
     339,   490,  1227,  1232,    -1,  1228,   363,    -1,   362,    -1,
     143,   832,  1224,    -1,   143,    12,  1224,    -1,  1228,    68,
    1229,  1289,  1227,  1232,    -1,   320,   278,   172,   448,   560,
     266,   145,  1293,    16,   267,   145,  1139,    16,   270,   145,
    1137,    -1,  1225,   256,    -1,   448,   196,    -1,    -1,    34,
     150,  1230,  1231,  1223,  1131,    -1,   895,  1229,  1289,  1227,
    1115,    -1,    69,   517,    -1,   493,   517,    -1,  1226,   142,
      -1,    23,    -1,    84,    -1,   373,    -1,    86,   579,   574,
     580,   555,    -1,    86,   579,   574,   580,   147,    -1,   555,
    1131,    -1,   147,  1131,    -1,   378,    -1,   377,  1216,  1219,
    1131,    -1,  1310,   472,  1232,    -1,   212,   472,    -1,   310,
     472,    -1,  1228,   376,    -1,  1310,   549,  1232,    -1,   869,
    1232,    -1,    67,  1232,    -1,   185,    -1,   185,   172,  1299,
      -1,    88,    95,   824,  1296,    -1,    88,   493,  1289,    -1,
      88,   553,  1289,    -1,   278,   472,    -1,   448,   472,    -1,
      88,   374,   635,    -1,    88,   178,   635,    -1,    88,   513,
     635,    -1,   374,   472,  1232,    -1,   178,   472,  1232,    -1,
     374,    65,   635,    -1,   178,    65,   635,    -1,    88,   151,
     635,    -1,   472,    -1,   310,    -1,   256,    -1,   278,    -1,
      33,    -1,    -1,   476,    -1,    -1,  1229,  1296,    -1,    -1,
     176,    -1,   175,    -1,   222,    -1,    -1,   222,  1293,    -1,
      -1,   175,  1139,    -1,    -1,   244,  1293,    -1,   558,  1028,
      -1,    -1,  1236,  1289,  1234,  1238,    -1,    -1,  1236,  1237,
    1235,  1007,    -1,   117,    -1,   118,    -1,    -1,   157,    -1,
     358,    -1,    -1,  1277,    -1,  1296,    -1,    -1,   169,   989,
    1240,  1241,    -1,  1241,   581,  1242,    -1,  1242,    -1,    -1,
    1321,  1243,  1244,    -1,   490,   560,   386,   254,    -1,   381,
      48,    -1,   196,    -1,   373,    -1,   256,    -1,   472,    -1,
     448,    -1,   278,    -1,   119,    -1,   411,    -1,    -1,  1161,
      -1,    -1,   410,  1246,  1247,    -1,  1247,   581,  1248,    -1,
    1248,    -1,   448,    -1,   278,    -1,   381,    48,    -1,    -1,
     379,  1250,  1251,    -1,  1225,   256,  1252,    -1,   509,  1293,
      -1,    29,  1028,    -1,   233,  1254,  1028,    -1,    -1,    78,
      -1,   381,    -1,   540,  1296,    -1,    -1,   250,    98,  1257,
    1258,    -1,   250,   493,  1289,   175,   278,    -1,    -1,    -1,
      -1,  1263,  1262,   209,  1295,  1259,  1264,   219,   493,  1289,
    1260,   872,  1261,  1265,  1268,  1271,  1272,  1275,    -1,   175,
     278,    -1,    -1,   251,    -1,    -1,    76,    -1,   262,    -1,
      -1,   407,    -1,   205,    -1,    -1,    68,  1266,    -1,  1266,
    1267,    -1,  1267,    -1,   497,    46,  1277,    -1,   343,   138,
      46,  1277,    -1,   138,    46,  1277,    -1,   148,    46,  1277,
      -1,    -1,   247,  1269,    -1,  1269,  1270,    -1,  1270,    -1,
     497,    46,  1277,    -1,   469,    46,  1277,    -1,    -1,   205,
     331,   247,    -1,    -1,   579,  1273,   580,    -1,   579,   580,
      -1,  1273,   581,  1274,    -1,  1274,    -1,  1286,    -1,   586,
    1298,    -1,    -1,   439,  1200,    -1,   498,    -1,   315,    -1,
     523,   498,    -1,  1276,  1294,    -1,  1294,    -1,   193,    -1,
      35,    -1,   354,    -1,  1280,    -1,   573,  1281,    -1,   572,
    1281,    -1,  1276,    -1,  1281,    -1,   330,    -1,   160,    -1,
     515,    -1,   193,    -1,    35,    -1,   523,   193,    -1,   523,
      35,    -1,   102,  1276,    -1,   505,  1276,    -1,   502,  1276,
      -1,   331,    -1,   259,    -1,   520,    -1,   109,    -1,   167,
      -1,  1286,    -1,  1283,    -1,  1296,   587,   574,    -1,  1296,
     587,  1296,   587,   574,    -1,  1028,    -1,  1296,    -1,  1287,
      -1,  1296,    -1,  1287,    -1,  1296,   587,  1296,    -1,   587,
    1296,   587,  1296,    -1,  1296,   587,  1296,   587,  1296,    -1,
    1296,    -1,  1296,   587,  1296,   587,  1296,    -1,  1296,   587,
    1296,    -1,   587,  1296,    -1,  1296,    -1,  1296,   587,  1296,
      -1,   587,  1296,    -1,  1296,  1211,    -1,  1296,   587,  1296,
    1211,    -1,  1296,    -1,   201,    -1,   203,    -1,   498,    -1,
     498,    -1,   498,    -1,  1292,    -1,  1300,    -1,  1292,    -1,
    1301,    -1,  1296,    -1,  1293,    -1,   243,    -1,  1298,    -1,
    1298,   586,  1298,    -1,    92,  1027,    -1,  1301,    -1,    20,
      -1,    28,    -1,    30,    -1,    47,    -1,    48,    -1,    57,
      -1,    59,    -1,    63,    -1,    70,    -1,    72,    -1,    81,
      -1,   108,    -1,   128,    -1,   139,    -1,   153,    -1,   169,
      -1,   189,    -1,   192,    -1,   195,    -1,   217,    -1,   234,
      -1,   327,    -1,   339,    -1,   341,    -1,   351,    -1,   355,
      -1,   359,    -1,   366,    -1,   369,    -1,   401,    -1,   404,
      -1,   410,    -1,   412,    -1,   419,    -1,   426,    -1,   430,
      -1,   437,    -1,   446,    -1,   451,    -1,   448,    -1,   452,
      -1,   471,    -1,   475,    -1,   516,    -1,   527,    -1,   528,
      -1,   562,    -1,   565,    -1,   536,    -1,     5,    -1,     7,
      -1,     8,    -1,     9,    -1,    10,    -1,    11,    -1,    17,
      -1,    22,    -1,    23,    -1,    25,    -1,    24,    -1,    26,
      -1,    27,    -1,    34,    -1,    38,    -1,    41,    -1,    43,
      -1,    42,    -1,    45,    -1,    51,    -1,    54,    -1,    56,
      -1,    61,    -1,    62,    -1,    64,    -1,    65,    -1,    67,
      -1,    68,    -1,    71,    -1,    73,    -1,    74,    -1,    75,
      -1,    76,    -1,    78,    -1,    79,    -1,    82,    -1,    84,
      -1,    87,    -1,    90,    -1,    98,    -1,    97,    -1,    99,
      -1,   102,    -1,   107,    -1,   113,    -1,   115,    -1,   119,
      -1,   121,    -1,   122,    -1,   123,    -1,   124,    -1,   131,
      -1,   132,    -1,   133,    -1,   140,    -1,   144,    -1,   143,
      -1,   142,    -1,   147,    -1,   149,    -1,   151,    -1,   150,
      -1,   152,    -1,   156,    -1,   157,    -1,   158,    -1,   162,
      -1,   161,    -1,   173,    -1,   137,    -1,   176,    -1,   164,
      -1,   165,    -1,   166,    -1,   174,    -1,   181,    -1,   180,
      -1,   182,    -1,   185,    -1,   183,    -1,   190,    -1,   196,
      -1,   200,    -1,   202,    -1,   221,    -1,   206,    -1,   207,
      -1,   210,    -1,   223,    -1,   224,    -1,   226,    -1,   227,
      -1,   212,    -1,   216,    -1,   231,    -1,   235,    -1,   238,
      -1,   241,    -1,   242,    -1,   248,    -1,   249,    -1,   251,
      -1,   253,    -1,   255,    -1,   256,    -1,   283,    -1,   278,
      -1,   265,    -1,   269,    -1,   266,    -1,   267,    -1,   279,
      -1,   268,    -1,   270,    -1,   264,    -1,   276,    -1,   272,
      -1,   271,    -1,   273,    -1,   274,    -1,   275,    -1,   281,
      -1,   282,    -1,   284,    -1,   286,    -1,   287,    -1,   288,
      -1,   292,    -1,   293,    -1,   294,    -1,   295,    -1,   296,
      -1,   299,    -1,   300,    -1,   304,    -1,   302,    -1,   306,
      -1,   307,    -1,   308,    -1,   309,    -1,   310,    -1,   312,
      -1,   311,    -1,   313,    -1,   316,    -1,   317,    -1,   321,
      -1,   320,    -1,   328,    -1,   322,    -1,   323,    -1,   333,
      -1,   334,    -1,   335,    -1,   337,    -1,   338,    -1,   352,
      -1,   353,    -1,   356,    -1,   357,    -1,   358,    -1,   360,
      -1,   361,    -1,   363,    -1,   362,    -1,   364,    -1,   365,
      -1,   370,    -1,   371,    -1,   373,    -1,   375,    -1,   376,
      -1,   377,    -1,   378,    -1,   380,    -1,   381,    -1,   382,
      -1,   385,    -1,   389,    -1,   390,    -1,   392,    -1,   391,
      -1,   393,    -1,   396,    -1,   397,    -1,   398,    -1,   400,
      -1,   403,    -1,   405,    -1,   408,    -1,   411,    -1,   414,
      -1,   415,    -1,   420,    -1,   421,    -1,   422,    -1,   423,
      -1,   424,    -1,   425,    -1,   427,    -1,   429,    -1,   435,
      -1,   434,    -1,   436,    -1,   447,    -1,   441,    -1,   445,
      -1,   450,    -1,   453,    -1,   454,    -1,   462,    -1,   461,
      -1,   464,    -1,   467,    -1,   470,    -1,   472,    -1,   476,
      -1,   478,    -1,   479,    -1,   480,    -1,   482,    -1,   481,
      -1,   485,    -1,   486,    -1,   487,    -1,   488,    -1,   490,
      -1,   494,    -1,   491,    -1,   495,    -1,   496,    -1,   499,
      -1,   500,    -1,   511,    -1,   512,    -1,   502,    -1,   503,
      -1,   504,    -1,   505,    -1,   517,    -1,   518,    -1,   519,
      -1,   178,    -1,   521,    -1,   522,    -1,   525,    -1,   524,
      -1,   531,    -1,   534,    -1,   538,    -1,   539,    -1,   549,
      -1,   553,    -1,   546,    -1,   555,    -1,   554,    -1,   556,
      -1,   561,    -1,   564,    -1,   568,    -1,    -1,   439,  1304,
    1303,  1305,    -1,    -1,   342,    -1,  1306,    -1,  1305,   581,
    1306,    -1,    -1,  1307,  1312,    -1,  1309,    -1,   183,    -1,
     251,    -1,   436,    -1,    -1,   337,    -1,    -1,   183,    -1,
     251,    -1,   436,    -1,    -1,   183,   587,    -1,   251,   587,
      -1,   436,   587,    -1,  1313,    -1,  1309,  1314,    -1,  1308,
    1315,  1186,  1318,    -1,  1308,   511,   226,   242,  1316,    -1,
     586,  1298,  1186,  1028,    -1,   586,   586,  1311,  1315,  1186,
    1318,    -1,   869,   874,    -1,   311,  1186,  1028,    -1,   311,
     871,   876,    -1,   360,  1186,  1317,    -1,   360,   172,  1299,
    1186,  1317,    -1,  1296,    -1,  1296,   587,  1296,    -1,   112,
     587,  1296,    -1,   386,   521,    -1,   386,    71,    -1,   405,
     386,    -1,   434,    -1,   498,    -1,   360,   579,   498,   580,
      -1,   335,   579,   498,   580,    -1,  1028,    -1,   112,    -1,
     336,    -1,    12,    -1,    33,    -1,    -1,   254,  1321,  1320,
    1322,    -1,   493,    -1,   490,    -1,  1323,    -1,  1322,   581,
    1323,    -1,  1289,  1113,  1324,    -1,   386,    -1,   563,    -1,
     262,   563,    -1,   386,   251,    -1,    -1,   532,  1326,  1321,
      -1,   189,  1289,   339,  1113,    -1,   189,  1291,    63,    -1,
      -1,   189,  1291,   386,  1328,  1329,  1115,  1132,    -1,  1330,
      -1,  1296,  1331,    -1,   165,    -1,   321,    -1,   165,    -1,
     321,    -1,   371,    -1,   235,    -1,    -1,  1333,  1332,   579,
    1191,   580,    -1,   145,    -1,   179,    -1,   236,    -1,   188,
      -1,   263,    -1,   417,   634,  1335,    -1,  1339,   336,  1338,
    1350,   175,  1352,    -1,  1339,   336,   178,  1350,   175,  1352,
      -1,  1339,   336,   374,  1350,   175,  1352,    -1,    12,  1340,
     581,   184,   342,   175,  1352,    -1,   184,   634,  1337,    -1,
    1339,   336,  1338,  1350,   509,  1352,  1357,  1358,    -1,  1339,
     336,   178,  1350,   509,  1352,  1357,  1358,    -1,  1339,   336,
     374,  1350,   509,  1352,  1357,  1358,    -1,    -1,   493,    -1,
    1341,    -1,    12,  1340,    -1,    -1,   373,    -1,  1342,    -1,
    1341,   581,  1342,    -1,    -1,   431,  1343,  1354,    -1,    -1,
     215,  1344,  1354,    -1,    -1,   535,  1345,  1354,    -1,    -1,
     394,  1346,  1354,    -1,   116,    -1,   537,    -1,   208,    -1,
      13,    -1,    88,    -1,   129,    -1,   153,    -1,   400,    -1,
     445,    -1,   375,    -1,   164,    -1,   184,   342,    -1,   444,
      96,    -1,   485,    -1,    88,   495,   490,    -1,   254,   490,
      -1,   408,   448,    -1,   408,    62,    -1,    88,   553,    -1,
     444,   553,    -1,    88,   421,    -1,    13,   421,    -1,    88,
     538,    -1,   151,    -1,   513,    -1,    -1,    16,    -1,  1349,
    1347,  1348,    -1,  1349,    -1,   480,   498,    -1,   227,   498,
      -1,    61,   498,    -1,   574,    -1,  1296,   587,   574,    -1,
     574,   587,   574,    -1,  1289,    -1,  1299,    -1,  1351,   581,
    1299,    -1,  1353,    -1,  1352,   581,  1353,    -1,  1299,   202,
      46,   498,    -1,  1299,   202,    46,   360,   498,    -1,  1299,
      -1,    -1,   579,  1355,   580,    -1,  1355,   581,  1356,    -1,
    1356,    -1,  1296,    -1,    -1,   409,  1348,    -1,   409,   468,
      -1,   409,   564,    -1,   409,   323,    -1,    -1,   560,  1359,
      -1,  1359,  1360,    -1,  1360,    -1,   184,   342,    -1,   282,
    1137,    -1,   286,  1137,    -1,   281,  1137,    -1,   287,  1137,
      -1,    -1,    30,  1362,  1363,    -1,    -1,   561,    -1,    -1,
      16,   327,    54,    -1,    16,    54,    -1,    -1,   399,    -1,
     327,   399,    -1,    -1,   426,    -1,    72,  1363,  1364,  1365,
      -1,   419,  1363,  1364,  1365,    -1,   419,  1363,   509,  1366,
    1296,    -1,   426,  1296,    -1,   399,   426,  1296,    -1,    -1,
    1372,    -1,    -1,   529,  1378,  1373,  1008,    -1,    -1,  1372,
      -1,  1375,    -1,    -1,  1376,  1377,    -1,  1127,  1131,    -1,
    1133,    -1,    -1,   125,    -1,    12,    -1,    -1,   431,  1381,
    1010,  1379,  1382,    -1,   579,  1381,  1009,  1379,  1382,   580,
      -1,    -1,    -1,  1388,  1384,    -1,  1387,  1385,    -1,  1389,
    1386,  1393,    -1,  1393,    -1,  1401,    -1,  1412,    -1,  1406,
      -1,   621,    -1,  1393,    -1,  1401,    -1,  1412,    -1,  1406,
      -1,  1405,    -1,   621,    -1,  1387,    -1,  1388,    -1,    -1,
     113,   145,  1299,    -1,  1390,    -1,  1390,  1391,    -1,  1391,
      -1,   347,   407,    -1,    11,   145,   522,    -1,    11,   145,
     294,    -1,    11,   145,   496,    -1,    -1,   466,   430,   113,
      -1,   466,   430,   221,    -1,    -1,  1392,   553,  1289,  1394,
    1395,    18,  1397,    -1,    -1,   579,  1396,   580,    -1,  1296,
      -1,  1396,   581,  1296,    -1,    -1,  1398,  1399,  1400,    -1,
     431,  1010,    -1,   579,  1009,   580,  1374,    -1,    -1,   560,
      60,   342,    -1,   560,    51,    60,   342,    -1,   560,   251,
      60,   342,    -1,    -1,    -1,    -1,   513,  1023,   635,   720,
     721,   336,  1023,  1402,  1289,   172,  1023,  1403,   134,   424,
    1404,   670,    -1,    10,  1023,   178,  1296,   415,   836,   452,
    1293,    -1,  1023,   178,  1296,   415,   836,   452,  1293,    -1,
      -1,    -1,    -1,    -1,    -1,  1023,   178,   635,   579,  1407,
     646,   580,  1408,   415,  1409,   847,  1410,   637,  1411,   670,
      -1,    -1,    -1,    -1,    -1,   374,  1023,   635,  1413,   579,
    1414,   650,   580,  1415,   637,  1416,   670,    -1,   565,  1419,
    1418,  1420,    -1,   565,   139,  1418,  1422,    -1,   565,   369,
    1418,    -1,   565,    72,  1418,  1421,    -1,   565,   419,  1418,
      -1,   565,   390,    -1,  1277,    -1,  1277,   581,  1277,    -1,
    1277,   581,  1277,   581,  1137,    -1,    30,    -1,   471,    -1,
      -1,   229,    -1,   414,    -1,    -1,   338,   361,    -1,    -1,
      -1,   486,  1423,  1424,    -1,    -1,   172,   296,    -1,   217,
     363,  1296,   452,  1293,    -1,   528,   363,  1296,    -1
};

/* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
static const yytype_uint16 yyrline[] =
{
       0,  1515,  1515,  1528,  1527,  1552,  1559,  1561,  1565,  1566,
    1571,  1572,  1573,  1574,  1575,  1576,  1577,  1578,  1579,  1580,
    1581,  1582,  1583,  1584,  1585,  1586,  1587,  1588,  1589,  1590,
    1591,  1592,  1593,  1594,  1595,  1596,  1597,  1598,  1599,  1600,
    1601,  1602,  1603,  1604,  1605,  1606,  1607,  1608,  1609,  1610,
    1611,  1612,  1613,  1614,  1615,  1616,  1617,  1618,  1619,  1620,
    1621,  1625,  1635,  1636,  1640,  1650,  1657,  1668,  1667,  1678,
    1680,  1684,  1685,  1689,  1702,  1701,  1721,  1720,  1731,  1732,
    1736,  1740,  1744,  1748,  1752,  1756,  1761,  1765,  1769,  1773,
    1777,  1781,  1786,  1790,  1794,  1810,  1814,  1826,  1825,  1859,
    1858,  1870,  1868,  1881,  1879,  1891,  1890,  1903,  1902,  1910,
    1914,  1918,  1922,  1929,  1942,  1943,  1947,  1951,  1955,  1959,
    1963,  1967,  1971,  1979,  1978,  2010,  2009,  2016,  2023,  2024,
    2029,  2034,  2043,  2049,  2055,  2057,  2064,  2065,  2069,  2075,
    2084,  2085,  2093,  2093,  2151,  2152,  2153,  2154,  2155,  2156,
    2157,  2158,  2159,  2160,  2161,  2162,  2163,  2168,  2182,  2198,
    2217,  2218,  2222,  2223,  2228,  2230,  2232,  2234,  2236,  2238,
    2240,  2246,  2247,  2248,  2252,  2256,  2264,  2263,  2276,  2278,
    2281,  2283,  2287,  2291,  2298,  2300,  2304,  2305,  2310,  2329,
    2355,  2357,  2361,  2362,  2366,  2392,  2393,  2394,  2395,  2399,
    2400,  2404,  2405,  2410,  2413,  2440,  2439,  2504,  2520,  2519,
    2567,  2593,  2593,  2616,  2617,  2622,  2624,  2629,  2652,  2660,
    2677,  2678,  2682,  2686,  2695,  2702,  2709,  2719,  2734,  2752,
    2753,  2757,  2758,  2759,  2760,  2761,  2762,  2763,  2764,  2765,
    2766,  2767,  2768,  2769,  2774,  2773,  2780,  2780,  2837,  2836,
    2865,  2865,  2879,  2932,  2975,  2996,  2995,  3017,  3036,  3038,
    3039,  3043,  3063,  3086,  3088,  3104,  3086,  3123,  3125,  3126,
    3130,  3131,  3136,  3142,  3135,  3163,  3162,  3178,  3179,  3183,
    3184,  3189,  3193,  3188,  3214,  3218,  3213,  3237,  3247,  3252,
    3251,  3287,  3288,  3293,  3292,  3325,  3325,  3340,  3339,  3375,
    3387,  3389,  3386,  3416,  3415,  3436,  3438,  3443,  3445,  3447,
    3464,  3469,  3475,  3482,  3483,  3491,  3497,  3506,  3512,  3518,
    3519,  3523,  3523,  3528,  3529,  3530,  3534,  3535,  3536,  3540,
    3544,  3545,  3546,  3550,  3551,  3552,  3553,  3554,  3555,  3556,
    3557,  3561,  3565,  3566,  3567,  3571,  3572,  3573,  3574,  3575,
    3579,  3583,  3584,  3585,  3589,  3590,  3591,  3592,  3593,  3594,
    3595,  3599,  3603,  3604,  3605,  3609,  3610,  3611,  3616,  3624,
    3632,  3640,  3652,  3664,  3669,  3674,  3682,  3690,  3698,  3706,
    3714,  3722,  3730,  3743,  3756,  3769,  3771,  3775,  3780,  3793,
    3794,  3845,  3846,  3849,  3863,  3880,  3885,  3883,  3893,  3895,
    3894,  3901,  3900,  3933,  3934,  3939,  3938,  3971,  3970,  3987,
    3991,  3998,  3997,  4001,  4000,  4004,  4003,  4009,  4010,  4015,
    4016,  4020,  4021,  4025,  4036,  4051,  4067,  4068,  4084,  4086,
    4085,  4090,  4088,  4099,  4100,  4104,  4115,  4131,  4132,  4148,
    4149,  4172,  4173,  4178,  4177,  4202,  4213,  4233,  4248,  4266,
    4278,  4294,  4295,  4299,  4309,  4310,  4314,  4331,  4390,  4402,
    4429,  4430,  4435,  4434,  4472,  4477,  4478,  4482,  4483,  4487,
    4489,  4495,  4497,  4499,  4501,  4503,  4505,  4515,  4544,  4514,
    4558,  4559,  4563,  4564,  4568,  4569,  4573,  4574,  4578,  4579,
    4583,  4584,  4588,  4592,  4593,  4596,  4598,  4602,  4603,  4607,
    4608,  4609,  4613,  4618,  4625,  4630,  4635,  4640,  4645,  4650,
    4655,  4670,  4676,  4681,  4686,  4691,  4696,  4709,  4710,  4711,
    4716,  4721,  4726,  4728,  4730,  4732,  4738,  4746,  4764,  4781,
    4804,  4818,  4819,  4820,  4821,  4822,  4823,  4827,  4828,  4829,
    4833,  4834,  4838,  4839,  4840,  4841,  4845,  4846,  4850,  4851,
    4855,  4856,  4863,  4868,  4874,  4880,  4886,  4906,  4910,  4916,
    4918,  4922,  4926,  4927,  4931,  4936,  4935,  4958,  4959,  4960,
    4961,  4966,  4970,  4975,  4980,  4984,  4989,  4994,  5000,  5005,
    5011,  5015,  5020,  5025,  5027,  5029,  5031,  5044,  5046,  5051,
    5056,  5068,  5073,  5078,  5083,  5085,  5087,  5089,  5091,  5093,
    5095,  5097,  5100,  5099,  5104,  5103,  5107,  5109,  5118,  5119,
    5120,  5125,  5126,  5127,  5128,  5129,  5133,  5137,  5138,  5142,
    5143,  5147,  5148,  5149,  5150,  5151,  5155,  5156,  5157,  5158,
    5159,  5163,  5168,  5170,  5176,  5177,  5179,  5184,  5193,  5194,
    5198,  5199,  5203,  5204,  5205,  5209,  5210,  5211,  5212,  5215,
    5216,  5219,  5220,  5224,  5225,  5229,  5230,  5234,  5235,  5236,
    5237,  5244,  5245,  5251,  5257,  5263,  5269,  5270,  5286,  5292,
    5297,  5298,  5302,  5310,  5314,  5315,  5319,  5320,  5324,  5333,
    5337,  5338,  5342,  5353,  5354,  5358,  5359,  5363,  5364,  5368,
    5369,  5370,  5371,  5380,  5381,  5385,  5386,  5390,  5391,  5392,
    5401,  5404,  5406,  5411,  5410,  5423,  5424,  5428,  5435,  5445,
    5446,  5450,  5451,  5455,  5456,  5457,  5458,  5459,  5463,  5464,
    5465,  5466,  5467,  5471,  5475,  5476,  5480,  5481,  5485,  5486,
    5490,  5491,  5492,  5496,  5497,  5501,  5505,  5518,  5530,  5531,
    5535,  5536,  5540,  5541,  5545,  5546,  5550,  5551,  5555,  5556,
    5560,  5561,  5565,  5566,  5570,  5575,  5576,  5580,  5584,  5585,
    5598,  5599,  5600,  5604,  5605,  5609,  5615,  5629,  5630,  5634,
    5635,  5639,  5640,  5648,  5647,  5673,  5672,  5686,  5698,  5697,
    5716,  5715,  5734,  5733,  5752,  5746,  5766,  5765,  5798,  5803,
    5808,  5813,  5818,  5828,  5829,  5830,  5831,  5835,  5836,  5848,
    5849,  5853,  5854,  5857,  5859,  5860,  5861,  5863,  5865,  5866,
    5875,  5876,  5880,  5889,  5887,  5897,  5907,  5906,  5916,  5914,
    5924,  5931,  5935,  5942,  5946,  5951,  5950,  5966,  5968,  5973,
    5982,  5981,  5997,  6001,  6000,  6012,  6013,  6017,  6032,  6033,
    6037,  6046,  6047,  6051,  6056,  6055,  6063,  6072,  6062,  6084,
    6093,  6097,  6106,  6115,  6121,  6127,  6136,  6145,  6164,  6185,
    6190,  6194,  6202,  6203,  6207,  6208,  6212,  6213,  6214,  6218,
    6219,  6220,  6224,  6225,  6226,  6227,  6236,  6235,  6246,  6254,
    6253,  6263,  6272,  6281,  6282,  6289,  6289,  6295,  6296,  6300,
    6301,  6302,  6306,  6307,  6323,  6324,  6329,  6328,  6340,  6339,
    6351,  6350,  6360,  6361,  6362,  6367,  6366,  6379,  6380,  6384,
    6385,  6389,  6390,  6391,  6396,  6395,  6408,  6417,  6416,  6434,
    6435,  6439,  6440,  6444,  6445,  6446,  6447,  6448,  6449,  6454,
    6453,  6466,  6467,  6468,  6473,  6472,  6478,  6485,  6490,  6498,
    6499,  6503,  6516,  6525,  6526,  6530,  6539,  6540,  6545,  6544,
    6554,  6555,  6559,  6568,  6568,  6579,  6580,  6585,  6586,  6595,
    6604,  6605,  6609,  6639,  6644,  6643,  6663,  6671,  6663,  6678,
    6679,  6680,  6681,  6682,  6686,  6693,  6700,  6702,  6713,  6714,
    6718,  6719,  6726,  6727,  6728,  6729,  6735,  6741,  6747,  6761,
    6764,  6766,  6774,  6785,  6786,  6787,  6802,  6828,  6834,  6840,
    6841,  6845,  6846,  6847,  6848,  6849,  6853,  6854,  6859,  6910,
    6917,  6960,  6966,  6972,  6978,  6984,  6990,  6996,  7002,  7006,
    7012,  7018,  7024,  7030,  7036,  7040,  7046,  7056,  7062,  7070,
    7076,  7086,  7092,  7101,  7111,  7117,  7127,  7133,  7142,  7146,
    7152,  7158,  7164,  7170,  7176,  7182,  7188,  7194,  7200,  7206,
    7212,  7218,  7224,  7230,  7234,  7235,  7239,  7240,  7244,  7245,
    7249,  7250,  7254,  7255,  7256,  7257,  7258,  7259,  7263,  7264,
    7268,  7269,  7270,  7271,  7272,  7273,  7285,  7286,  7287,  7288,
    7289,  7295,  7299,  7305,  7311,  7317,  7323,  7325,  7332,  7339,
    7345,  7347,  7356,  7363,  7371,  7377,  7384,  7390,  7404,  7411,
    7427,  7433,  7439,  7447,  7453,  7459,  7465,  7471,  7486,  7498,
    7504,  7510,  7516,  7522,  7528,  7534,  7540,  7546,  7552,  7558,
    7564,  7570,  7576,  7582,  7588,  7594,  7602,  7623,  7630,  7636,
    7643,  7650,  7657,  7664,  7671,  7677,  7683,  7690,  7697,  7703,
    7710,  7716,  7722,  7728,  7734,  7740,  7758,  7768,  7774,  7780,
    7787,  7794,  7809,  7815,  7821,  7827,  7833,  7840,  7846,  7852,
    7858,  7864,  7876,  7882,  7888,  7894,  7900,  7912,  7918,  7934,
    7940,  7947,  7954,  7961,  7968,  7975,  7979,  7999,  7998,  8066,
    8098,  8100,  8105,  8106,  8110,  8111,  8115,  8116,  8120,  8127,
    8135,  8161,  8167,  8173,  8179,  8185,  8191,  8200,  8207,  8209,
    8206,  8216,  8227,  8233,  8239,  8245,  8251,  8257,  8263,  8269,
    8275,  8282,  8281,  8300,  8299,  8314,  8324,  8332,  8348,  8349,
    8354,  8359,  8364,  8367,  8380,  8379,  8396,  8398,  8400,  8402,
    8404,  8406,  8408,  8410,  8412,  8414,  8416,  8421,  8422,  8426,
    8433,  8441,  8442,  8446,  8453,  8461,  8462,  8466,  8467,  8471,
    8479,  8489,  8490,  8499,  8510,  8511,  8516,  8517,  8537,  8539,
    8543,  8541,  8558,  8556,  8574,  8572,  8579,  8588,  8586,  8604,
    8603,  8613,  8624,  8622,  8641,  8640,  8651,  8662,  8663,  8664,
    8669,  8669,  8682,  8704,  8757,  8756,  8779,  8796,  8779,  8803,
    8807,  8833,  8834,  8839,  8843,  8844,  8845,  8849,  8850,  8855,
    8854,  8860,  8859,  8867,  8868,  8871,  8873,  8873,  8877,  8877,
    8882,  8883,  8887,  8889,  8894,  8895,  8899,  8910,  8923,  8924,
    8925,  8926,  8927,  8928,  8929,  8930,  8931,  8932,  8933,  8934,
    8938,  8939,  8958,  8959,  8960,  8961,  8962,  8963,  8964,  8965,
    8966,  8970,  8971,  8972,  8973,  8976,  8978,  8979,  8983,  8984,
    8992,  8994,  8998,  9000,  8999,  9013,  9016,  9015,  9030,  9036,
    9051,  9053,  9057,  9059,  9064,  9065,  9078,  9096,  9100,  9101,
    9105,  9118,  9120,  9125,  9124,  9159,  9161,  9166,  9167,  9168,
    9173,  9179,  9183,  9184,  9188,  9192,  9199,  9206,  9216,  9220,
    9226,  9232,  9242,  9246,  9255,  9256,  9257,  9258,  9259,  9260,
    9264,  9265,  9266,  9267,  9268,  9272,  9273,  9274,  9275,  9276,
    9280,  9281,  9282,  9283,  9287,  9292,  9293,  9296,  9299,  9298,
    9329,  9330,  9334,  9335,  9339,  9351,  9351,  9362,  9363,  9367,
    9386,  9419,  9418,  9431,  9439,  9430,  9441,  9453,  9465,  9464,
    9481,  9488,  9488,  9502,  9509,  9532,  9553,  9565,  9569,  9575,
    9581,  9588,  9593,  9598,  9608,  9609,  9613,  9621,  9622,  9626,
    9636,  9637,  9641,  9642,  9650,  9660,  9649,  9670,  9677,  9669,
    9687,  9699,  9700,  9701,  9705,  9706,  9710,  9711,  9715,  9724,
    9725,  9726,  9728,  9727,  9738,  9739,  9743,  9744,  9746,  9745,
    9749,  9748,  9754,  9755,  9759,  9760,  9764,  9774,  9775,  9779,
    9780,  9785,  9784,  9798,  9799,  9803,  9808,  9816,  9817,  9825,
    9827,  9827,  9835,  9844,  9834,  9866,  9867,  9871,  9879,  9880,
    9884,  9894,  9895,  9902,  9901,  9915,  9914,  9923,  9922,  9930,
    9929,  9939,  9940,  9944,  9956,  9971,  9972,  9976,  9977,  9981,
    9982,  9983,  9987,  9997,  9999, 10002, 10004, 10007, 10008, 10011,
   10015, 10019, 10023, 10027, 10031, 10035, 10039, 10043, 10051, 10054,
   10064, 10063, 10077, 10084, 10092, 10100, 10108, 10116, 10124, 10132,
   10139, 10141, 10143, 10152, 10165, 10169, 10174, 10173, 10178, 10187,
   10192, 10200, 10207, 10212, 10217, 10222, 10224, 10226, 10228, 10230,
   10232, 10239, 10247, 10259, 10271, 10273, 10281, 10288, 10295, 10305,
   10312, 10318, 10327, 10335, 10339, 10343, 10350, 10357, 10363, 10370,
   10377, 10387, 10397, 10405, 10407, 10409, 10414, 10415, 10418, 10420,
   10424, 10425, 10429, 10430, 10434, 10435, 10439, 10440, 10444, 10445,
   10448, 10450, 10457, 10468, 10467, 10481, 10480, 10490, 10491, 10495,
   10496, 10497, 10501, 10502, 10503, 10518, 10517, 10529, 10530, 10535,
   10534, 10537, 10539, 10541, 10543, 10545, 10547, 10549, 10551, 10553,
   10555, 10560, 10561, 10566, 10565, 10575, 10576, 10580, 10581, 10582,
   10587, 10586, 10597, 10601, 10605, 10617, 10627, 10628, 10629, 10635,
   10647, 10646, 10659, 10677, 10688, 10698, 10676, 10702, 10712, 10713,
   10717, 10718, 10730, 10734, 10735, 10736, 10739, 10741, 10745, 10746,
   10750, 10755, 10762, 10767, 10774, 10776, 10780, 10781, 10785, 10790,
   10797, 10799, 10807, 10808, 10809, 10813, 10815, 10820, 10821, 10830,
   10831, 10837, 10861, 10873, 10884, 10903, 10911, 10923, 10938, 10959,
   10960, 10961, 10969, 10970, 10971, 10978, 10984, 10990, 10996, 11002,
   11031, 11059, 11060, 11061, 11065, 11075, 11085, 11091, 11100, 11115,
   11116, 11120, 11129, 11145, 11149, 11196, 11200, 11218, 11222, 11301,
   11326, 11357, 11358, 11374, 11384, 11388, 11394, 11400, 11410, 11416,
   11425, 11435, 11436, 11465, 11481, 11497, 11514, 11515, 11526, 11527,
   11538, 11539, 11540, 11544, 11558, 11571, 11586, 11587, 11588, 11589,
   11590, 11591, 11592, 11593, 11594, 11595, 11596, 11597, 11598, 11599,
   11600, 11601, 11602, 11603, 11604, 11605, 11606, 11607, 11608, 11609,
   11610, 11611, 11612, 11613, 11614, 11615, 11616, 11617, 11618, 11619,
   11620, 11621, 11622, 11623, 11624, 11625, 11626, 11627, 11628, 11629,
   11630, 11631, 11632, 11633, 11634, 11635, 11645, 11646, 11647, 11648,
   11649, 11650, 11651, 11652, 11653, 11654, 11655, 11656, 11657, 11658,
   11659, 11660, 11661, 11662, 11663, 11664, 11665, 11666, 11667, 11668,
   11669, 11670, 11671, 11672, 11673, 11674, 11675, 11676, 11677, 11678,
   11679, 11680, 11681, 11682, 11683, 11684, 11685, 11686, 11687, 11688,
   11689, 11690, 11691, 11692, 11693, 11694, 11695, 11696, 11697, 11698,
   11699, 11700, 11701, 11702, 11703, 11704, 11705, 11706, 11707, 11708,
   11709, 11710, 11711, 11712, 11713, 11714, 11715, 11716, 11717, 11718,
   11719, 11720, 11721, 11722, 11723, 11724, 11725, 11726, 11727, 11728,
   11729, 11730, 11731, 11732, 11733, 11734, 11735, 11736, 11737, 11738,
   11739, 11740, 11741, 11742, 11743, 11744, 11745, 11746, 11747, 11748,
   11749, 11750, 11751, 11752, 11753, 11754, 11755, 11756, 11757, 11758,
   11759, 11760, 11761, 11762, 11763, 11764, 11765, 11766, 11767, 11768,
   11769, 11770, 11771, 11772, 11773, 11774, 11775, 11776, 11777, 11778,
   11779, 11780, 11781, 11782, 11783, 11784, 11785, 11786, 11787, 11788,
   11789, 11790, 11791, 11792, 11793, 11794, 11795, 11796, 11797, 11798,
   11799, 11800, 11801, 11802, 11803, 11804, 11805, 11806, 11807, 11808,
   11809, 11810, 11811, 11812, 11813, 11814, 11815, 11816, 11817, 11818,
   11819, 11820, 11821, 11822, 11823, 11824, 11825, 11826, 11827, 11828,
   11829, 11830, 11831, 11832, 11833, 11834, 11835, 11836, 11837, 11838,
   11839, 11840, 11841, 11842, 11843, 11844, 11845, 11846, 11847, 11848,
   11849, 11850, 11851, 11852, 11853, 11854, 11855, 11856, 11857, 11858,
   11859, 11860, 11861, 11862, 11863, 11864, 11865, 11866, 11867, 11868,
   11869, 11870, 11871, 11872, 11873, 11874, 11875, 11876, 11877, 11878,
   11879, 11880, 11881, 11882, 11883, 11884, 11885, 11886, 11887, 11888,
   11889, 11890, 11891, 11892, 11893, 11894, 11895, 11896, 11897, 11898,
   11899, 11900, 11901, 11902, 11903, 11904, 11911, 11910, 11925, 11926,
   11930, 11931, 11935, 11935, 12017, 12018, 12019, 12020, 12024, 12025,
   12029, 12030, 12031, 12032, 12036, 12037, 12038, 12039, 12043, 12044,
   12048, 12090, 12109, 12120, 12133, 12147, 12162, 12181, 12208, 12221,
   12248, 12291, 12305, 12306, 12307, 12308, 12312, 12313, 12322, 12334,
   12335, 12336, 12342, 12348, 12360, 12359, 12375, 12376, 12380, 12381,
   12385, 12397, 12398, 12399, 12400, 12405, 12404, 12424, 12436, 12449,
   12448, 12474, 12475, 12479, 12480, 12484, 12485, 12486, 12487, 12489,
   12488, 12501, 12502, 12503, 12504, 12505, 12511, 12516, 12522, 12533,
   12544, 12551, 12556, 12563, 12575, 12589, 12591, 12595, 12596, 12603,
   12605, 12609, 12610, 12615, 12614, 12618, 12617, 12621, 12620, 12624,
   12623, 12626, 12627, 12628, 12629, 12630, 12631, 12632, 12633, 12634,
   12635, 12636, 12637, 12638, 12639, 12640, 12641, 12642, 12643, 12644,
   12645, 12646, 12647, 12648, 12649, 12650, 12654, 12655, 12659, 12660,
   12664, 12674, 12684, 12697, 12712, 12725, 12738, 12750, 12755, 12763,
   12768, 12776, 12803, 12805, 12811, 12815, 12819, 12820, 12824, 12851,
   12853, 12857, 12861, 12865, 12872, 12873, 12877, 12878, 12882, 12883,
   12889, 12895, 12901, 12911, 12910, 12920, 12921, 12926, 12927, 12928,
   12933, 12934, 12935, 12939, 12940, 12944, 12954, 12961, 12971, 12980,
   12994, 12995, 13000, 12999, 13040, 13041, 13042, 13046, 13046, 13070,
   13071, 13075, 13076, 13077, 13081, 13086, 13091, 13098, 13119, 13154,
   13156, 13158, 13163, 13164, 13165, 13166, 13167, 13171, 13172, 13173,
   13174, 13175, 13176, 13186, 13187, 13192, 13205, 13218, 13220, 13222,
   13227, 13232, 13234, 13236, 13242, 13243, 13245, 13251, 13250, 13264,
   13265, 13269, 13274, 13282, 13282, 13307, 13308, 13313, 13314, 13316,
   13318, 13336, 13342, 13347, 13329, 13408, 13426, 13451, 13483, 13487,
   13495, 13518, 13447, 13583, 13607, 13616, 13624, 13582, 13645, 13649,
   13653, 13657, 13661, 13665, 13672, 13679, 13686, 13696, 13697, 13701,
   13702, 13703, 13707, 13708, 13713, 13715, 13714, 13720, 13721, 13725,
   13735
};
#endif

#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
   First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
static const char *const yytname[] =
{
  "$end", "error", "$undefined", "ABORT_SYM", "ACCESSIBLE_SYM", "ACTION",
  "ADD", "ADDDATE_SYM", "AFTER_SYM", "AGAINST", "AGGREGATE_SYM",
  "ALGORITHM_SYM", "ALL", "ALTER", "ANALYZE_SYM", "AND_AND_SYM", "AND_SYM",
  "ANY_SYM", "AS", "ASC", "ASCII_SYM", "ASENSITIVE_SYM", "AT_SYM",
  "AUTHORS_SYM", "AUTOEXTEND_SIZE_SYM", "AUTO_INC", "AVG_ROW_LENGTH",
  "AVG_SYM", "BACKUP_SYM", "BEFORE_SYM", "BEGIN_SYM", "BETWEEN_SYM",
  "BIGINT", "BINARY", "BINLOG_SYM", "BIN_NUM", "BIT_AND", "BIT_OR",
  "BIT_SYM", "BIT_XOR", "BLOB_SYM", "BLOCK_SYM", "BOOLEAN_SYM", "BOOL_SYM",
  "BOTH", "BTREE_SYM", "BY", "BYTE_SYM", "CACHE_SYM", "CALL_SYM",
  "CASCADE", "CASCADED", "CASE_SYM", "CAST_SYM", "CHAIN_SYM", "CHANGE",
  "CHANGED", "CHARSET", "CHAR_SYM", "CHECKSUM_SYM", "CHECK_SYM",
  "CIPHER_SYM", "CLIENT_SYM", "CLOSE_SYM", "COALESCE", "CODE_SYM",
  "COLLATE_SYM", "COLLATION_SYM", "COLUMNS", "COLUMN_SYM", "COMMENT_SYM",
  "COMMITTED_SYM", "COMMIT_SYM", "COMPACT_SYM", "COMPLETION_SYM",
  "COMPRESSED_SYM", "CONCURRENT", "CONDITION_SYM", "CONNECTION_SYM",
  "CONSISTENT_SYM", "CONSTRAINT", "CONTAINS_SYM", "CONTEXT_SYM",
  "CONTINUE_SYM", "CONTRIBUTORS_SYM", "CONVERT_SYM", "COUNT_SYM",
  "CPU_SYM", "CREATE", "CROSS", "CUBE_SYM", "CURDATE", "CURRENT_USER",
  "CURSOR_SYM", "CURTIME", "DATABASE", "DATABASES", "DATAFILE_SYM",
  "DATA_SYM", "DATETIME", "DATE_ADD_INTERVAL", "DATE_SUB_INTERVAL",
  "DATE_SYM", "DAY_HOUR_SYM", "DAY_MICROSECOND_SYM", "DAY_MINUTE_SYM",
  "DAY_SECOND_SYM", "DAY_SYM", "DEALLOCATE_SYM", "DECIMAL_NUM",
  "DECIMAL_SYM", "DECLARE_SYM", "DEFAULT", "DEFINER_SYM", "DELAYED_SYM",
  "DELAY_KEY_WRITE_SYM", "DELETE_SYM", "DESC", "DESCRIBE", "DES_KEY_FILE",
  "DETERMINISTIC_SYM", "DIRECTORY_SYM", "DISABLE_SYM", "DISCARD",
  "DISK_SYM", "DISTINCT", "DIV_SYM", "DOUBLE_SYM", "DO_SYM", "DROP",
  "DUAL_SYM", "DUMPFILE", "DUPLICATE_SYM", "DYNAMIC_SYM", "EACH_SYM",
  "ELSE", "ELSEIF_SYM", "ENABLE_SYM", "ENCLOSED", "END", "ENDS_SYM",
  "END_OF_INPUT", "ENGINES_SYM", "ENGINE_SYM", "ENUM", "EQ", "EQUAL_SYM",
  "ERRORS", "ESCAPED", "ESCAPE_SYM", "EVENTS_SYM", "EVENT_SYM",
  "EVERY_SYM", "EXECUTE_SYM", "EXISTS", "EXIT_SYM", "EXPANSION_SYM",
  "EXTENDED_SYM", "EXTENT_SIZE_SYM", "EXTRACT_SYM", "FALSE_SYM",
  "FAST_SYM", "FAULTS_SYM", "FETCH_SYM", "FILE_SYM", "FIRST_SYM",
  "FIXED_SYM", "FLOAT_NUM", "FLOAT_SYM", "FLUSH_SYM", "FORCE_SYM",
  "FOREIGN", "FOR_SYM", "FOUND_SYM", "FRAC_SECOND_SYM", "FROM", "FULL",
  "FULLTEXT_SYM", "FUNCTION_SYM", "GE", "GEOMETRYCOLLECTION",
  "GEOMETRY_SYM", "GET_FORMAT", "GLOBAL_SYM", "GRANT", "GRANTS",
  "GROUP_SYM", "GROUP_CONCAT_SYM", "GT_SYM", "HANDLER_SYM", "HASH_SYM",
  "HAVING", "HELP_SYM", "HEX_NUM", "HIGH_PRIORITY", "HOST_SYM",
  "HOSTS_SYM", "HOUR_MICROSECOND_SYM", "HOUR_MINUTE_SYM",
  "HOUR_SECOND_SYM", "HOUR_SYM", "IDENT", "IDENTIFIED_SYM", "IDENT_QUOTED",
  "IF", "IGNORE_SYM", "IMPORT", "INDEXES", "INDEX_SYM", "INFILE",
  "INITIAL_SIZE_SYM", "INNER_SYM", "INNOBASE_SYM", "INOUT_SYM",
  "INSENSITIVE_SYM", "INSERT", "INSERT_METHOD", "INSTALL_SYM",
  "INTERVAL_SYM", "INTO", "INT_SYM", "INVOKER_SYM", "IN_SYM", "IO_SYM",
  "IPC_SYM", "IS", "ISOLATION", "ISSUER_SYM", "ITERATE_SYM", "JOIN_SYM",
  "KEYS", "KEY_BLOCK_SIZE", "KEY_SYM", "KILL_SYM", "LANGUAGE_SYM",
  "LAST_SYM", "LE", "LEADING", "LEAVES", "LEAVE_SYM", "LEFT", "LESS_SYM",
  "LEVEL_SYM", "LEX_HOSTNAME", "LIKE", "LIMIT", "LINEAR_SYM", "LINES",
  "LINESTRING", "LIST_SYM", "LOAD", "LOCAL_SYM", "LOCATOR_SYM",
  "LOCKS_SYM", "LOCK_SYM", "LOGFILE_SYM", "LOGS_SYM", "LONGBLOB",
  "LONGTEXT", "LONG_NUM", "LONG_SYM", "LOOP_SYM", "LOW_PRIORITY", "LT",
  "MASTER_CONNECT_RETRY_SYM", "MASTER_HOST_SYM", "MASTER_LOG_FILE_SYM",
  "MASTER_LOG_POS_SYM", "MASTER_PASSWORD_SYM", "MASTER_PORT_SYM",
  "MASTER_SERVER_ID_SYM", "MASTER_SSL_CAPATH_SYM", "MASTER_SSL_CA_SYM",
  "MASTER_SSL_CERT_SYM", "MASTER_SSL_CIPHER_SYM", "MASTER_SSL_KEY_SYM",
  "MASTER_SSL_SYM", "MASTER_SSL_VERIFY_SERVER_CERT_SYM", "MASTER_SYM",
  "MASTER_USER_SYM", "MATCH", "MAX_CONNECTIONS_PER_HOUR",
  "MAX_QUERIES_PER_HOUR", "MAX_ROWS", "MAX_SIZE_SYM", "MAX_SYM",
  "MAX_UPDATES_PER_HOUR", "MAX_USER_CONNECTIONS_SYM", "MAX_VALUE_SYM",
  "MEDIUMBLOB", "MEDIUMINT", "MEDIUMTEXT", "MEDIUM_SYM", "MEMORY_SYM",
  "MERGE_SYM", "MICROSECOND_SYM", "MIGRATE_SYM", "MINUTE_MICROSECOND_SYM",
  "MINUTE_SECOND_SYM", "MINUTE_SYM", "MIN_ROWS", "MIN_SYM", "MODE_SYM",
  "MODIFIES_SYM", "MODIFY_SYM", "MOD_SYM", "MONTH_SYM", "MULTILINESTRING",
  "MULTIPOINT", "MULTIPOLYGON", "MUTEX_SYM", "NAMES_SYM", "NAME_SYM",
  "NATIONAL_SYM", "NATURAL", "NCHAR_STRING", "NCHAR_SYM", "NDBCLUSTER_SYM",
  "NE", "NEG", "NEW_SYM", "NEXT_SYM", "NODEGROUP_SYM", "NONE_SYM",
  "NOT2_SYM", "NOT_SYM", "NOW_SYM", "NO_SYM", "NO_WAIT_SYM",
  "NO_WRITE_TO_BINLOG", "NULL_SYM", "NUM", "NUMERIC_SYM", "NVARCHAR_SYM",
  "OFFSET_SYM", "OLD_PASSWORD", "ON", "ONE_SHOT_SYM", "ONE_SYM",
  "OPEN_SYM", "OPTIMIZE", "OPTIONS_SYM", "OPTION", "OPTIONALLY", "OR2_SYM",
  "ORDER_SYM", "OR_OR_SYM", "OR_SYM", "OUTER", "OUTFILE", "OUT_SYM",
  "OWNER_SYM", "PACK_KEYS_SYM", "PAGE_SYM", "PARAM_MARKER", "PARSER_SYM",
  "PARTIAL", "PARTITIONING_SYM", "PARTITIONS_SYM", "PARTITION_SYM",
  "PASSWORD", "PHASE_SYM", "PLUGINS_SYM", "PLUGIN_SYM", "POINT_SYM",
  "POLYGON", "PORT_SYM", "POSITION_SYM", "PRECISION", "PREPARE_SYM",
  "PRESERVE_SYM", "PREV_SYM", "PRIMARY_SYM", "PRIVILEGES", "PROCEDURE",
  "PROCESS", "PROCESSLIST_SYM", "PROFILE_SYM", "PROFILES_SYM", "PURGE",
  "QUARTER_SYM", "QUERY_SYM", "QUICK", "RANGE_SYM", "READS_SYM",
  "READ_ONLY_SYM", "READ_SYM", "READ_WRITE_SYM", "REAL", "REBUILD_SYM",
  "RECOVER_SYM", "REDOFILE_SYM", "REDO_BUFFER_SIZE_SYM", "REDUNDANT_SYM",
  "REFERENCES", "REGEXP", "RELAY_LOG_FILE_SYM", "RELAY_LOG_POS_SYM",
  "RELAY_THREAD", "RELEASE_SYM", "RELOAD", "REMOVE_SYM", "RENAME",
  "REORGANIZE_SYM", "REPAIR", "REPEATABLE_SYM", "REPEAT_SYM", "REPLACE",
  "REPLICATION", "REQUIRE_SYM", "RESET_SYM", "RESOURCES", "RESTORE_SYM",
  "RESTRICT", "RESUME_SYM", "RETURNS_SYM", "RETURN_SYM", "REVOKE", "RIGHT",
  "ROLLBACK_SYM", "ROLLUP_SYM", "ROUTINE_SYM", "ROWS_SYM",
  "ROW_FORMAT_SYM", "ROW_SYM", "RTREE_SYM", "SAVEPOINT_SYM",
  "SCHEDULE_SYM", "SECOND_MICROSECOND_SYM", "SECOND_SYM", "SECURITY_SYM",
  "SELECT_SYM", "SENSITIVE_SYM", "SEPARATOR_SYM", "SERIALIZABLE_SYM",
  "SERIAL_SYM", "SESSION_SYM", "SERVER_SYM", "SERVER_OPTIONS", "SET",
  "SET_VAR", "SHARE_SYM", "SHIFT_LEFT", "SHIFT_RIGHT", "SHOW", "SHUTDOWN",
  "SIGNED_SYM", "SIMPLE_SYM", "SLAVE", "SMALLINT", "SNAPSHOT_SYM",
  "SOCKET_SYM", "SONAME_SYM", "SOUNDS_SYM", "SOURCE_SYM", "SPATIAL_SYM",
  "SPECIFIC_SYM", "SQLEXCEPTION_SYM", "SQLSTATE_SYM", "SQLWARNING_SYM",
  "SQL_BIG_RESULT", "SQL_BUFFER_RESULT", "SQL_CACHE_SYM",
  "SQL_CALC_FOUND_ROWS", "SQL_NO_CACHE_SYM", "SQL_SMALL_RESULT", "SQL_SYM",
  "SQL_THREAD", "SSL_SYM", "STARTING", "STARTS_SYM", "START_SYM",
  "STATUS_SYM", "STDDEV_SAMP_SYM", "STD_SYM", "STOP_SYM", "STORAGE_SYM",
  "STRAIGHT_JOIN", "STRING_SYM", "SUBDATE_SYM", "SUBJECT_SYM",
  "SUBPARTITIONS_SYM", "SUBPARTITION_SYM", "SUBSTRING", "SUM_SYM",
  "SUPER_SYM", "SUSPEND_SYM", "SWAPS_SYM", "SWITCHES_SYM", "SYSDATE",
  "TABLES", "TABLESPACE", "TABLE_REF_PRIORITY", "TABLE_SYM",
  "TABLE_CHECKSUM_SYM", "TEMPORARY", "TEMPTABLE_SYM", "TERMINATED",
  "TEXT_STRING", "TEXT_SYM", "THAN_SYM", "THEN_SYM", "TIMESTAMP",
  "TIMESTAMP_ADD", "TIMESTAMP_DIFF", "TIME_SYM", "TINYBLOB", "TINYINT",
  "TINYTEXT", "TO_SYM", "TRAILING", "TRANSACTION_SYM", "TRIGGERS_SYM",
  "TRIGGER_SYM", "TRIM", "TRUE_SYM", "TRUNCATE_SYM", "TYPES_SYM",
  "TYPE_SYM", "UDF_RETURNS_SYM", "ULONGLONG_NUM", "UNCOMMITTED_SYM",
  "UNDEFINED_SYM", "UNDERSCORE_CHARSET", "UNDOFILE_SYM",
  "UNDO_BUFFER_SIZE_SYM", "UNDO_SYM", "UNICODE_SYM", "UNINSTALL_SYM",
  "UNION_SYM", "UNIQUE_SYM", "UNKNOWN_SYM", "UNLOCK_SYM", "UNSIGNED",
  "UNTIL_SYM", "UPDATE_SYM", "UPGRADE_SYM", "USAGE", "USER", "USE_FRM",
  "USE_SYM", "USING", "UTC_DATE_SYM", "UTC_TIMESTAMP_SYM", "UTC_TIME_SYM",
  "VALUES", "VALUE_SYM", "VARBINARY", "VARCHAR", "VARIABLES",
  "VARIANCE_SYM", "VARYING", "VAR_SAMP_SYM", "VIEW_SYM", "WAIT_SYM",
  "WARNINGS", "WEEK_SYM", "WHEN_SYM", "WHERE", "WHILE_SYM", "WITH",
  "WORK_SYM", "WRAPPER_SYM", "WRITE_SYM", "X509_SYM", "XA_SYM", "XOR",
  "YEAR_MONTH_SYM", "YEAR_SYM", "ZEROFILL", "'|'", "'&'", "'-'", "'+'",
  "'*'", "'/'", "'%'", "'^'", "'~'", "'('", "')'", "','", "'!'", "'{'",
  "'}'", "';'", "'@'", "'.'", "':'", "$accept", "query", "$@1",
  "opt_end_of_input", "verb_clause", "statement", "deallocate",
  "deallocate_or_drop", "prepare", "prepare_src", "execute", "$@2",
  "execute_using", "execute_var_list", "execute_var_ident", "help", "$@3",
  "change", "$@4", "master_defs", "master_def", "master_file_def",
  "create", "$@5", "$@6", "$@7", "$@8", "$@9", "$@10", "server_def",
  "server_options_list", "server_option", "event_tail", "$@11",
  "ev_schedule_time", "$@12", "opt_ev_status", "ev_starts", "ev_ends",
  "opt_ev_on_completion", "ev_on_completion", "opt_ev_comment",
  "ev_sql_stmt", "$@13", "ev_sql_stmt_inner", "clear_privileges",
  "sp_name", "sp_a_chistics", "sp_c_chistics", "sp_chistic",
  "sp_c_chistic", "sp_suid", "call", "$@14", "opt_sp_cparam_list",
  "opt_sp_cparams", "sp_cparams", "sp_fdparam_list", "sp_fdparams",
  "sp_init_param", "sp_fdparam", "sp_pdparam_list", "sp_pdparams",
  "sp_pdparam", "sp_opt_inout", "sp_proc_stmts", "sp_proc_stmts1",
  "sp_decls", "sp_decl", "$@15", "$@16", "sp_cursor_stmt", "$@17",
  "sp_handler_type", "sp_hcond_list", "sp_hcond_element", "sp_cond",
  "opt_value", "sp_hcond", "sp_decl_idents", "sp_opt_default",
  "sp_proc_stmt", "sp_proc_stmt_if", "$@18", "sp_proc_stmt_statement",
  "$@19", "sp_proc_stmt_return", "$@20", "sp_proc_stmt_unlabeled", "$@21",
  "sp_proc_stmt_leave", "sp_proc_stmt_iterate", "sp_proc_stmt_open",
  "sp_proc_stmt_fetch", "$@22", "sp_proc_stmt_close", "sp_opt_fetch_noise",
  "sp_fetch_list", "sp_if", "$@23", "$@24", "$@25", "sp_elseifs",
  "case_stmt_specification", "simple_case_stmt", "$@26", "$@27",
  "searched_case_stmt", "$@28", "simple_when_clause_list",
  "searched_when_clause_list", "simple_when_clause", "$@29", "$@30",
  "searched_when_clause", "$@31", "$@32", "else_clause_opt",
  "sp_labeled_control", "$@33", "sp_opt_label", "sp_labeled_block", "$@34",
  "sp_unlabeled_block", "$@35", "sp_block_content", "$@36",
  "sp_unlabeled_control", "$@37", "$@38", "$@39", "trg_action_time",
  "trg_event", "change_tablespace_access", "change_tablespace_info",
  "tablespace_info", "opt_logfile_group_name", "alter_tablespace_info",
  "logfile_group_info", "alter_logfile_group_info", "add_log_file",
  "change_ts_option_list", "$@40", "change_ts_options", "change_ts_option",
  "tablespace_option_list", "tablespace_options", "tablespace_option",
  "alter_tablespace_option_list", "alter_tablespace_options",
  "alter_tablespace_option", "logfile_group_option_list",
  "logfile_group_options", "logfile_group_option",
  "alter_logfile_group_option_list", "alter_logfile_group_options",
  "alter_logfile_group_option", "ts_datafile", "lg_undofile",
  "lg_redofile", "tablespace_name", "logfile_group_name", "ts_access_mode",
  "opt_ts_initial_size", "opt_ts_autoextend_size", "opt_ts_max_size",
  "opt_ts_extent_size", "opt_ts_undo_buffer_size",
  "opt_ts_redo_buffer_size", "opt_ts_nodegroup", "opt_ts_comment",
  "opt_ts_engine", "opt_ts_wait", "ts_wait", "size_number", "create2",
  "create2a", "$@41", "create3", "$@42", "$@43", "opt_partitioning",
  "partitioning", "$@44", "partition_entry", "$@45", "partition",
  "part_type_def", "$@46", "$@47", "$@48", "opt_linear", "part_field_list",
  "part_field_item_list", "part_field_item", "part_func", "sub_part_func",
  "opt_no_parts", "opt_sub_part", "$@49", "$@50", "sub_part_field_list",
  "sub_part_field_item", "part_func_expr", "opt_no_subparts", "part_defs",
  "part_def_list", "part_definition", "$@51", "part_name",
  "opt_part_values", "part_func_max", "max_value_sym", "part_range_func",
  "part_list_func", "part_list_item", "part_bit_expr", "opt_sub_partition",
  "sub_part_list", "sub_part_definition", "$@52", "sub_name",
  "opt_part_options", "opt_part_option_list", "opt_part_option",
  "create_select", "$@53", "$@54", "opt_as", "opt_create_database_options",
  "create_database_options", "create_database_option", "opt_table_options",
  "table_options", "table_option", "opt_if_not_exists",
  "opt_create_table_options", "create_table_options_space_separated",
  "create_table_options", "create_table_option", "default_charset",
  "default_collation", "storage_engines", "known_storage_engines",
  "row_types", "merge_insert_types", "opt_select_from", "udf_type",
  "field_list", "field_list_item", "column_def", "key_def",
  "opt_check_constraint", "check_constraint", "opt_constraint",
  "constraint", "field_spec", "$@55", "type", "$@56", "$@57",
  "spatial_type", "char", "nchar", "varchar", "nvarchar", "int_type",
  "real_type", "float_options", "precision", "field_options",
  "field_opt_list", "field_option", "field_length", "opt_field_length",
  "opt_precision", "opt_attribute", "opt_attribute_list", "attribute",
  "now_or_signed_literal", "charset", "charset_name",
  "charset_name_or_default", "opt_load_data_charset",
  "old_or_new_charset_name", "old_or_new_charset_name_or_default",
  "collation_name", "opt_collate", "collation_name_or_default",
  "opt_default", "opt_binary", "opt_bin_mod", "opt_bin_charset",
  "opt_primary", "references", "$@58", "opt_ref_list", "ref_list",
  "opt_on_delete", "opt_on_delete_list", "opt_on_delete_item",
  "delete_option", "normal_key_type", "constraint_key_type",
  "key_or_index", "opt_key_or_index", "keys_or_index", "opt_unique",
  "fulltext", "spatial", "init_key_options", "key_alg",
  "normal_key_options", "fulltext_key_options", "spatial_key_options",
  "normal_key_opts", "spatial_key_opts", "fulltext_key_opts",
  "key_using_alg", "all_key_opt", "normal_key_opt", "spatial_key_opt",
  "fulltext_key_opt", "btree_or_rtree", "key_list", "key_part",
  "opt_ident", "opt_component", "string_list", "alter", "$@59", "$@60",
  "$@61", "$@62", "$@63", "$@64", "$@65",
  "ev_alter_on_schedule_completion", "opt_ev_rename_to", "opt_ev_sql_stmt",
  "ident_or_empty", "alter_commands", "$@66", "$@67", "$@68",
  "remove_partitioning", "all_or_alt_part_name_list", "add_partition_rule",
  "$@69", "add_part_extra", "reorg_partition_rule", "$@70",
  "reorg_parts_rule", "$@71", "alt_part_name_list", "alt_part_name_item",
  "alter_list", "add_column", "alter_list_item", "$@72", "$@73", "$@74",
  "opt_column", "opt_ignore", "opt_restrict", "opt_place", "opt_to",
  "slave", "$@75", "$@76", "start", "start_transaction_opts",
  "slave_thread_opts", "$@77", "slave_thread_opt_list", "slave_thread_opt",
  "slave_until", "slave_until_opts", "restore", "$@78", "backup", "$@79",
  "checksum", "$@80", "opt_checksum_type", "repair", "$@81",
  "opt_mi_repair_type", "mi_repair_types", "mi_repair_type", "analyze",
  "$@82", "binlog_base64_event", "check", "$@83", "opt_mi_check_type",
  "mi_check_types", "mi_check_type", "optimize", "$@84",
  "opt_no_write_to_binlog", "rename", "$@85", "rename_list",
  "table_to_table_list", "table_to_table", "keycache", "keycache_list",
  "assign_to_keycache", "key_cache_name", "preload", "$@86",
  "preload_list", "preload_keys", "cache_keys_spec", "$@87",
  "cache_key_list_or_empty", "opt_ignore_leaves", "select", "select_init",
  "select_paren", "select_init2", "$@88", "select_part2", "$@89", "$@90",
  "select_into", "select_from", "select_options", "select_option_list",
  "select_option", "select_lock_type", "select_item_list", "select_item",
  "remember_name", "remember_end", "select_item2", "select_alias",
  "optional_braces", "expr", "bool_pri", "predicate", "bit_expr", "or",
  "and", "not", "not2", "comp_op", "all_or_any", "simple_expr",
  "function_call_keyword", "function_call_nonkeyword",
  "function_call_conflict", "geometry_function", "function_call_generic",
  "@91", "fulltext_options", "opt_natural_language_mode",
  "opt_query_expansion", "opt_udf_expr_list", "udf_expr_list", "udf_expr",
  "sum_expr", "$@92", "$@93", "$@94", "variable", "$@95", "variable_aux",
  "opt_distinct", "opt_gconcat_separator", "opt_gorder_clause",
  "in_sum_expr", "$@96", "cast_type", "opt_expr_list", "expr_list",
  "ident_list_arg", "ident_list", "opt_expr", "opt_else", "when_list",
  "table_ref", "join_table_list", "esc_table_ref", "derived_table_list",
  "join_table", "$@97", "$@98", "$@99", "$@100", "$@101", "$@102", "$@103",
  "normal_join", "table_factor", "$@104", "select_derived", "$@105",
  "select_derived2", "$@106", "$@107", "get_select_lex",
  "select_derived_init", "opt_outer", "index_hint_clause",
  "index_hint_type", "index_hint_definition", "$@108", "$@109",
  "index_hints_list", "opt_index_hints_list", "$@110",
  "opt_key_definition", "$@111", "opt_key_usage_list", "key_usage_element",
  "key_usage_list", "using_list", "interval", "interval_time_stamp",
  "interval_time_st", "date_time_type", "table_alias", "opt_table_alias",
  "opt_all", "where_clause", "$@112", "having_clause", "$@113",
  "opt_escape", "group_clause", "group_list", "olap_opt",
  "alter_order_clause", "alter_order_list", "alter_order_item",
  "opt_order_clause", "order_clause", "$@114", "order_list", "order_dir",
  "opt_limit_clause_init", "opt_limit_clause", "limit_clause",
  "limit_options", "limit_option", "delete_limit_clause", "ulong_num",
  "real_ulong_num", "ulonglong_num", "real_ulonglong_num", "dec_num_error",
  "dec_num", "procedure_clause", "$@115", "procedure_list",
  "procedure_list2", "procedure_item", "select_var_list_init", "$@116",
  "select_var_list", "select_var_ident", "into", "$@117",
  "into_destination", "$@118", "$@119", "do", "$@120", "drop", "$@121",
  "table_list", "table_name", "table_alias_ref_list", "table_alias_ref",
  "if_exists", "opt_temporary", "insert", "$@122", "$@123", "replace",
  "$@124", "$@125", "insert_lock_option", "replace_lock_option", "insert2",
  "insert_table", "insert_field_spec", "$@126", "fields", "insert_values",
  "$@127", "$@128", "values_list", "ident_eq_list", "ident_eq_value",
  "equal", "opt_equal", "no_braces", "$@129", "opt_values", "values",
  "expr_or_default", "opt_insert_update", "$@130", "update", "$@131",
  "$@132", "update_list", "update_elem", "insert_update_list",
  "insert_update_elem", "opt_low_priority", "delete", "$@133",
  "single_multi", "$@134", "$@135", "$@136", "table_wild_list",
  "table_wild_one", "opt_wild", "opt_delete_options", "opt_delete_option",
  "truncate", "opt_table_sym", "opt_profile_defs", "profile_defs",
  "profile_def", "opt_profile_args", "show", "$@137", "show_param",
  "$@138", "show_engine_param", "master_or_binary", "opt_storage",
  "opt_db", "opt_full", "from_or_in", "binlog_in", "binlog_from",
  "wild_and_where", "describe", "$@139", "$@140", "describe_command",
  "opt_extended_describe", "opt_describe_column", "flush", "$@141",
  "flush_options", "flush_option", "$@142", "opt_table_list", "reset",
  "$@143", "reset_options", "reset_option", "purge", "$@144",
  "purge_options", "purge_option", "kill", "kill_option", "use", "load",
  "$@145", "load_data", "$@146", "$@147", "$@148", "opt_local",
  "load_data_lock", "opt_duplicate", "opt_field_term", "field_term_list",
  "field_term", "opt_line_term", "line_term_list", "line_term",
  "opt_ignore_lines", "opt_field_or_var_spec", "fields_or_vars",
  "field_or_var", "opt_load_data_set_spec", "text_literal", "text_string",
  "param_marker", "signed_literal", "literal", "NUM_literal",
  "insert_ident", "table_wild", "order_ident", "simple_ident",
  "simple_ident_nospvar", "simple_ident_q", "field_ident", "table_ident",
  "table_ident_opt_wild", "table_ident_nodb", "IDENT_sys",
  "TEXT_STRING_sys", "TEXT_STRING_literal", "TEXT_STRING_filesystem",
  "ident", "label_ident", "ident_or_text", "user", "keyword", "keyword_sp",
  "set", "$@149", "opt_option", "option_value_list", "option_type_value",
  "$@150", "option_type", "option_type2", "opt_var_type",
  "opt_var_ident_type", "ext_option_value", "sys_option_value",
  "option_value", "internal_variable_name", "isolation_types",
  "text_or_password", "set_expr_or_default", "lock", "$@151",
  "table_or_tables", "table_lock_list", "table_lock", "lock_option",
  "unlock", "$@152", "handler", "$@153", "handler_read_or_scan",
  "handler_scan_function", "handler_rkey_function", "$@154",
  "handler_rkey_mode", "revoke", "revoke_command", "grant",
  "grant_command", "opt_table", "grant_privileges", "opt_privileges",
  "object_privilege_list", "object_privilege", "$@155", "$@156", "$@157",
  "$@158", "opt_and", "require_list", "require_list_element",
  "grant_ident", "user_list", "grant_list", "grant_user",
  "opt_column_list", "column_list", "column_list_id", "require_clause",
  "grant_options", "grant_option_list", "grant_option", "begin", "$@159",
  "opt_work", "opt_chain", "opt_release", "opt_savepoint", "commit",
  "rollback", "savepoint", "release", "union_clause", "union_list",
  "$@160", "union_opt", "union_order_or_limit", "$@161", "order_or_limit",
  "union_option", "take_first_select", "subselect", "subselect_start",
  "subselect_end", "view_or_trigger_or_sp_or_event", "definer_tail",
  "no_definer_tail", "definer_opt", "no_definer", "definer",
  "view_replace_or_algorithm", "view_replace", "view_algorithm",
  "view_suid", "view_tail", "$@162", "view_list_opt", "view_list",
  "view_select", "$@163", "view_select_aux", "view_check_option",
  "trigger_tail", "$@164", "$@165", "$@166", "udf_tail", "sf_tail",
  "$@167", "$@168", "$@169", "$@170", "$@171", "sp_tail", "$@172", "$@173",
  "$@174", "$@175", "xa", "xid", "begin_or_start", "opt_join_or_resume",
  "opt_one_phase", "opt_suspend", "$@176", "opt_migrate", "install",
  "uninstall", 0
};
#endif

# ifdef YYPRINT
/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
   token YYLEX-NUM.  */
static const yytype_uint16 yytoknum[] =
{
       0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
     315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
     325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
     335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
     345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
     365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
     375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
     385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
     405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
     415,   416,   417,   418,   419,   420,   421,   422,   423,   424,
     425,   426,   427,   428,   429,   430,   431,   432,   433,   434,
     435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
     445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
     455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
     475,   476,   477,   478,   479,   480,   481,   482,   483,   484,
     485,   486,   487,   488,   489,   490,   491,   492,   493,   494,
     495,   496,   497,   498,   499,   500,   501,   502,   503,   504,
     505,   506,   507,   508,   509,   510,   511,   512,   513,   514,
     515,   516,   517,   518,   519,   520,   521,   522,   523,   524,
     525,   526,   527,   528,   529,   530,   531,   532,   533,   534,
     535,   536,   537,   538,   539,   540,   541,   542,   543,   544,
     545,   546,   547,   548,   549,   550,   551,   552,   553,   554,
     555,   556,   557,   558,   559,   560,   561,   562,   563,   564,
     565,   566,   567,   568,   569,   570,   571,   572,   573,   574,
     575,   576,   577,   578,   579,   580,   581,   582,   583,   584,
     585,   586,   587,   588,   589,   590,   591,   592,   593,   594,
     595,   596,   597,   598,   599,   600,   601,   602,   603,   604,
     605,   606,   607,   608,   609,   610,   611,   612,   613,   614,
     615,   616,   617,   618,   619,   620,   621,   622,   623,   624,
     625,   626,   627,   628,   629,   630,   631,   632,   633,   634,
     635,   636,   637,   638,   639,   640,   641,   642,   643,   644,
     645,   646,   647,   648,   649,   650,   651,   652,   653,   654,
     655,   656,   657,   658,   659,   660,   661,   662,   663,   664,
     665,   666,   667,   668,   669,   670,   671,   672,   673,   674,
     675,   676,   677,   678,   679,   680,   681,   682,   683,   684,
     685,   686,   687,   688,   689,   690,   691,   692,   693,   694,
     695,   696,   697,   698,   699,   700,   701,   702,   703,   704,
     705,   706,   707,   708,   709,   710,   711,   712,   713,   714,
     715,   716,   717,   718,   719,   720,   721,   722,   723,   724,
     725,   726,   727,   728,   729,   730,   731,   732,   733,   734,
     735,   736,   737,   738,   739,   740,   741,   742,   743,   744,
     745,   746,   747,   748,   749,   750,   751,   752,   753,   754,
     755,   756,   757,   758,   759,   760,   761,   762,   763,   764,
     765,   766,   767,   768,   769,   770,   771,   772,   773,   774,
     775,   776,   777,   778,   779,   780,   781,   782,   783,   784,
     785,   786,   787,   788,   789,   790,   791,   792,   793,   794,
     795,   796,   797,   798,   799,   800,   801,   802,   803,   804,
     805,   806,   807,   808,   809,   810,   811,   812,   813,   814,
     815,   816,   817,   818,   819,   820,   821,   822,   823,   824,
     124,    38,    45,    43,    42,    47,    37,    94,   126,    40,
      41,    44,    33,   123,   125,    59,    64,    46,    58
};
# endif

/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
static const yytype_uint16 yyr1[] =
{
       0,   589,   590,   591,   590,   590,   592,   592,   593,   593,
     594,   594,   594,   594,   594,   594,   594,   594,   594,   594,
     594,   594,   594,   594,   594,   594,   594,   594,   594,   594,
     594,   594,   594,   594,   594,   594,   594,   594,   594,   594,
     594,   594,   594,   594,   594,   594,   594,   594,   594,   594,
     594,   594,   594,   594,   594,   594,   594,   594,   594,   594,
     594,   595,   596,   596,   597,   598,   598,   600,   599,   601,
     601,   602,   602,   603,   605,   604,   607,   606,   608,   608,
     609,   609,   609,   609,   609,   609,   609,   609,   609,   609,
     609,   609,   609,   610,   610,   610,   610,   612,   611,   613,
     611,   614,   611,   615,   611,   616,   611,   617,   611,   611,
     611,   611,   611,   618,   619,   619,   620,   620,   620,   620,
     620,   620,   620,   622,   621,   624,   623,   623,   625,   625,
     625,   625,   626,   626,   627,   627,   628,   628,   629,   629,
     630,   630,   632,   631,   633,   633,   633,   633,   633,   633,
     633,   633,   633,   633,   633,   633,   633,   634,   635,   635,
     636,   636,   637,   637,   638,   638,   638,   638,   638,   638,
     638,   639,   639,   639,   640,   640,   642,   641,   643,   643,
     644,   644,   645,   645,   646,   646,   647,   647,   648,   649,
     650,   650,   651,   651,   652,   653,   653,   653,   653,   654,
     654,   655,   655,   656,   656,   658,   657,   657,   659,   657,
     657,   661,   660,   662,   662,   663,   663,   664,   665,   665,
     666,   666,   667,   667,   667,   667,   667,   668,   668,   669,
     669,   670,   670,   670,   670,   670,   670,   670,   670,   670,
     670,   670,   670,   670,   672,   671,   674,   673,   676,   675,
     678,   677,   679,   680,   681,   683,   682,   684,   685,   685,
     685,   686,   686,   688,   689,   690,   687,   691,   691,   691,
     692,   692,   694,   695,   693,   697,   696,   698,   698,   699,
     699,   701,   702,   700,   704,   705,   703,   706,   706,   708,
     707,   709,   709,   711,   710,   713,   712,   715,   714,   716,
     717,   718,   716,   719,   716,   720,   720,   721,   721,   721,
     722,   723,   724,   725,   725,   726,   726,   727,   728,   729,
     729,   731,   730,   732,   732,   732,   733,   733,   733,   734,
     735,   735,   735,   736,   736,   736,   736,   736,   736,   736,
     736,   737,   738,   738,   738,   739,   739,   739,   739,   739,
     740,   741,   741,   741,   742,   742,   742,   742,   742,   742,
     742,   743,   744,   744,   744,   745,   745,   745,   746,   747,
     748,   749,   750,   751,   751,   751,   752,   753,   754,   755,
     756,   757,   758,   759,   760,   761,   761,   762,   762,   763,
     763,   764,   764,   764,   764,   765,   766,   765,   767,   768,
     767,   769,   767,   770,   770,   772,   771,   774,   773,   775,
     776,   777,   776,   778,   776,   779,   776,   780,   780,   781,
     781,   782,   782,   783,   784,   785,   786,   786,   787,   788,
     787,   789,   787,   790,   790,   791,   792,   793,   793,   794,
     794,   795,   795,   797,   796,   798,   799,   799,   799,   800,
     800,   801,   801,   802,   803,   803,   804,   805,   806,   806,
     807,   807,   809,   808,   810,   811,   811,   812,   812,   813,
     813,   813,   813,   813,   813,   813,   813,   815,   816,   814,
     817,   817,   818,   818,   819,   819,   820,   820,   821,   821,
     822,   822,   823,   824,   824,   825,   825,   826,   826,   827,
     827,   827,   828,   828,   828,   828,   828,   828,   828,   828,
     828,   828,   828,   828,   828,   828,   828,   828,   828,   828,
     828,   828,   828,   828,   828,   828,   828,   829,   830,   831,
     832,   833,   833,   833,   833,   833,   833,   834,   834,   834,
     835,   835,   836,   836,   836,   836,   837,   837,   838,   838,
     839,   839,   840,   840,   840,   840,   840,   840,   840,   841,
     841,   842,   843,   843,   844,   846,   845,   847,   847,   847,
     847,   847,   847,   847,   847,   847,   847,   847,   847,   847,
     847,   847,   847,   847,   847,   847,   847,   847,   847,   847,
     847,   847,   847,   847,   847,   847,   847,   847,   847,   847,
     847,   847,   848,   847,   849,   847,   847,   847,   850,   850,
     850,   850,   850,   850,   850,   850,   851,   852,   852,   853,
     853,   854,   854,   854,   854,   854,   855,   855,   855,   855,
     855,   856,   856,   856,   857,   857,   857,   858,   859,   859,
     860,   860,   861,   861,   861,   862,   862,   862,   862,   863,
     863,   864,   864,   865,   865,   866,   866,   867,   867,   867,
     867,   867,   867,   867,   867,   867,   867,   867,   868,   868,
     869,   869,   870,   870,   871,   871,   872,   872,   873,   873,
     874,   874,   875,   876,   876,   877,   877,   878,   878,   879,
     879,   879,   879,   879,   879,   880,   880,   881,   881,   881,
     881,   882,   882,   884,   883,   885,   885,   886,   886,   887,
     887,   888,   888,   889,   889,   889,   889,   889,   890,   890,
     890,   890,   890,   891,   892,   892,   893,   893,   894,   894,
     895,   895,   895,   896,   896,   897,   898,   899,   900,   900,
     901,   901,   902,   902,   903,   903,   904,   904,   905,   905,
     906,   906,   907,   907,   908,   909,   909,   910,   911,   911,
     912,   912,   912,   913,   913,   914,   914,   915,   915,   916,
     916,   917,   917,   919,   918,   920,   918,   918,   921,   918,
     922,   918,   923,   918,   924,   918,   925,   918,   918,   918,
     918,   918,   918,   926,   926,   926,   926,   927,   927,   928,
     928,   929,   929,   930,   930,   930,   930,   930,   930,   930,
     930,   930,   930,   931,   930,   930,   932,   930,   933,   930,
     930,   930,   934,   935,   935,   937,   936,   938,   938,   938,
     940,   939,   941,   942,   941,   943,   943,   944,   945,   945,
     946,   947,   947,   947,   948,   947,   949,   950,   947,   947,
     947,   947,   947,   947,   947,   947,   947,   947,   947,   947,
     947,   947,   951,   951,   952,   952,   953,   953,   953,   954,
     954,   954,   955,   955,   955,   955,   957,   956,   956,   958,
     956,   956,   959,   960,   960,   962,   961,   963,   963,   964,
     964,   964,   965,   965,   966,   966,   968,   967,   970,   969,
     972,   971,   973,   973,   973,   975,   974,   976,   976,   977,
     977,   978,   978,   978,   980,   979,   981,   983,   982,   984,
     984,   985,   985,   986,   986,   986,   986,   986,   986,   988,
     987,   989,   989,   989,   991,   990,   990,   992,   992,   993,
     993,   994,   995,   996,   996,   997,   998,   998,  1000,   999,
    1001,  1001,  1002,  1004,  1003,  1005,  1005,  1006,  1006,  1007,
    1008,  1008,  1009,  1009,  1011,  1010,  1013,  1014,  1012,  1015,
    1015,  1015,  1015,  1015,  1016,  1016,  1017,  1017,  1018,  1018,
    1019,  1019,  1019,  1019,  1019,  1019,  1019,  1019,  1019,  1019,
    1020,  1020,  1020,  1021,  1021,  1021,  1022,  1023,  1024,  1025,
    1025,  1026,  1026,  1026,  1026,  1026,  1027,  1027,  1028,  1028,
    1028,  1028,  1028,  1028,  1028,  1028,  1028,  1028,  1028,  1029,
    1029,  1029,  1029,  1029,  1029,  1030,  1030,  1030,  1030,  1030,
    1030,  1030,  1030,  1030,  1030,  1030,  1030,  1030,  1030,  1031,
    1031,  1031,  1031,  1031,  1031,  1031,  1031,  1031,  1031,  1031,
    1031,  1031,  1031,  1031,  1032,  1032,  1033,  1033,  1034,  1034,
    1035,  1035,  1036,  1036,  1036,  1036,  1036,  1036,  1037,  1037,
    1038,  1038,  1038,  1038,  1038,  1038,  1038,  1038,  1038,  1038,
    1038,  1038,  1038,  1038,  1038,  1038,  1038,  1038,  1038,  1038,
    1038,  1038,  1038,  1038,  1038,  1038,  1038,  1038,  1038,  1038,
    1039,  1039,  1039,  1039,  1039,  1039,  1039,  1039,  1039,  1039,
    1039,  1039,  1039,  1039,  1039,  1039,  1039,  1039,  1039,  1039,
    1039,  1039,  1039,  1039,  1039,  1039,  1039,  1040,  1040,  1040,
    1040,  1040,  1040,  1040,  1040,  1040,  1040,  1040,  1040,  1040,
    1040,  1040,  1040,  1040,  1040,  1040,  1040,  1040,  1040,  1040,
    1040,  1040,  1041,  1041,  1041,  1041,  1041,  1041,  1041,  1041,
    1041,  1041,  1041,  1041,  1041,  1041,  1041,  1041,  1041,  1042,
    1042,  1042,  1042,  1042,  1042,  1042,  1042,  1044,  1043,  1043,
    1045,  1045,  1046,  1046,  1047,  1047,  1048,  1048,  1049,  1049,
    1050,  1051,  1051,  1051,  1051,  1051,  1051,  1051,  1052,  1053,
    1051,  1051,  1051,  1051,  1051,  1051,  1051,  1051,  1051,  1051,
    1051,  1054,  1051,  1056,  1055,  1057,  1057,  1057,  1058,  1058,
    1059,  1059,  1060,  1060,  1062,  1061,  1063,  1063,  1063,  1063,
    1063,  1063,  1063,  1063,  1063,  1063,  1063,  1064,  1064,  1065,
    1065,  1066,  1066,  1067,  1067,  1068,  1068,  1069,  1069,  1070,
    1070,  1071,  1071,  1072,  1073,  1073,  1074,  1074,  1075,  1075,
    1076,  1075,  1077,  1075,  1078,  1075,  1075,  1079,  1075,  1080,
    1075,  1075,  1081,  1075,  1082,  1075,  1075,  1083,  1083,  1083,
    1085,  1084,  1084,  1084,  1087,  1086,  1089,  1090,  1088,  1091,
    1092,  1093,  1093,  1094,  1094,  1094,  1094,  1095,  1095,  1097,
    1096,  1098,  1096,  1099,  1099,  1100,  1101,  1100,  1103,  1102,
    1104,  1104,  1105,  1105,  1106,  1106,  1107,  1107,  1108,  1108,
    1108,  1108,  1108,  1108,  1108,  1108,  1108,  1108,  1108,  1108,
    1109,  1109,  1110,  1110,  1110,  1110,  1110,  1110,  1110,  1110,
    1110,  1111,  1111,  1111,  1111,  1112,  1112,  1112,  1113,  1113,
    1114,  1114,  1115,  1116,  1115,  1117,  1118,  1117,  1119,  1119,
    1120,  1120,  1121,  1121,  1122,  1122,  1122,  1123,  1124,  1124,
    1125,  1126,  1126,  1128,  1127,  1129,  1129,  1130,  1130,  1130,
    1131,  1131,  1132,  1132,  1133,  1134,  1134,  1134,  1135,  1135,
    1135,  1135,  1136,  1136,  1137,  1137,  1137,  1137,  1137,  1137,
    1138,  1138,  1138,  1138,  1138,  1139,  1139,  1139,  1139,  1139,
    1140,  1140,  1140,  1140,  1141,  1142,  1142,  1143,  1144,  1143,
    1145,  1145,  1146,  1146,  1147,  1149,  1148,  1150,  1150,  1151,
    1151,  1153,  1152,  1155,  1156,  1154,  1154,  1154,  1158,  1157,
    1159,  1160,  1159,  1159,  1159,  1159,  1159,  1159,  1159,  1159,
    1159,  1159,  1159,  1159,  1161,  1161,  1162,  1163,  1163,  1164,
    1165,  1165,  1166,  1166,  1168,  1169,  1167,  1171,  1172,  1170,
    1173,  1173,  1173,  1173,  1174,  1174,  1175,  1175,  1176,  1177,
    1177,  1177,  1178,  1177,  1179,  1179,  1180,  1180,  1181,  1180,
    1182,  1180,  1183,  1183,  1184,  1184,  1185,  1186,  1186,  1187,
    1187,  1189,  1188,  1190,  1190,  1191,  1191,  1192,  1192,  1193,
    1194,  1193,  1196,  1197,  1195,  1198,  1198,  1199,  1200,  1200,
    1201,  1202,  1202,  1204,  1203,  1206,  1205,  1207,  1205,  1208,
    1205,  1209,  1209,  1210,  1210,  1211,  1211,  1212,  1212,  1213,
    1213,  1213,  1214,  1215,  1215,  1216,  1216,  1217,  1217,  1218,
    1218,  1218,  1218,  1218,  1218,  1218,  1218,  1218,  1219,  1219,
    1221,  1220,  1222,  1222,  1222,  1222,  1222,  1222,  1222,  1222,
    1222,  1222,  1222,  1222,  1222,  1222,  1223,  1222,  1222,  1222,
    1222,  1222,  1222,  1222,  1222,  1222,  1222,  1222,  1222,  1222,
    1222,  1222,  1222,  1222,  1222,  1222,  1222,  1222,  1222,  1222,
    1222,  1222,  1222,  1222,  1222,  1222,  1222,  1222,  1222,  1222,
    1222,  1222,  1222,  1224,  1224,  1224,  1225,  1225,  1226,  1226,
    1227,  1227,  1228,  1228,  1229,  1229,  1230,  1230,  1231,  1231,
    1232,  1232,  1232,  1234,  1233,  1235,  1233,  1236,  1236,  1237,
    1237,  1237,  1238,  1238,  1238,  1240,  1239,  1241,  1241,  1243,
    1242,  1242,  1242,  1242,  1242,  1242,  1242,  1242,  1242,  1242,
    1242,  1244,  1244,  1246,  1245,  1247,  1247,  1248,  1248,  1248,
    1250,  1249,  1251,  1252,  1252,  1253,  1254,  1254,  1254,  1255,
    1257,  1256,  1256,  1259,  1260,  1261,  1258,  1258,  1262,  1262,
    1263,  1263,  1263,  1264,  1264,  1264,  1265,  1265,  1266,  1266,
    1267,  1267,  1267,  1267,  1268,  1268,  1269,  1269,  1270,  1270,
    1271,  1271,  1272,  1272,  1272,  1273,  1273,  1274,  1274,  1275,
    1275,  1276,  1276,  1276,  1276,  1277,  1277,  1277,  1278,  1279,
    1279,  1279,  1280,  1280,  1280,  1280,  1280,  1280,  1280,  1280,
    1280,  1280,  1280,  1280,  1281,  1281,  1281,  1281,  1281,  1282,
    1282,  1283,  1283,  1284,  1285,  1285,  1286,  1286,  1287,  1287,
    1287,  1288,  1288,  1288,  1288,  1289,  1289,  1289,  1290,  1290,
    1291,  1292,  1292,  1293,  1294,  1295,  1296,  1296,  1297,  1297,
    1298,  1298,  1298,  1299,  1299,  1299,  1300,  1300,  1300,  1300,
    1300,  1300,  1300,  1300,  1300,  1300,  1300,  1300,  1300,  1300,
    1300,  1300,  1300,  1300,  1300,  1300,  1300,  1300,  1300,  1300,
    1300,  1300,  1300,  1300,  1300,  1300,  1300,  1300,  1300,  1300,
    1300,  1300,  1300,  1300,  1300,  1300,  1300,  1300,  1300,  1300,
    1300,  1300,  1300,  1300,  1300,  1300,  1301,  1301,  1301,  1301,
    1301,  1301,  1301,  1301,  1301,  1301,  1301,  1301,  1301,  1301,
    1301,  1301,  1301,  1301,  1301,  1301,  1301,  1301,  1301,  1301,
    1301,  1301,  1301,  1301,  1301,  1301,  1301,  1301,  1301,  1301,
    1301,  1301,  1301,  1301,  1301,  1301,  1301,  1301,  1301,  1301,
    1301,  1301,  1301,  1301,  1301,  1301,  1301,  1301,  1301,  1301,
    1301,  1301,  1301,  1301,  1301,  1301,  1301,  1301,  1301,  1301,
    1301,  1301,  1301,  1301,  1301,  1301,  1301,  1301,  1301,  1301,
    1301,  1301,  1301,  1301,  1301,  1301,  1301,  1301,  1301,  1301,
    1301,  1301,  1301,  1301,  1301,  1301,  1301,  1301,  1301,  1301,
    1301,  1301,  1301,  1301,  1301,  1301,  1301,  1301,  1301,  1301,
    1301,  1301,  1301,  1301,  1301,  1301,  1301,  1301,  1301,  1301,
    1301,  1301,  1301,  1301,  1301,  1301,  1301,  1301,  1301,  1301,
    1301,  1301,  1301,  1301,  1301,  1301,  1301,  1301,  1301,  1301,
    1301,  1301,  1301,  1301,  1301,  1301,  1301,  1301,  1301,  1301,
    1301,  1301,  1301,  1301,  1301,  1301,  1301,  1301,  1301,  1301,
    1301,  1301,  1301,  1301,  1301,  1301,  1301,  1301,  1301,  1301,
    1301,  1301,  1301,  1301,  1301,  1301,  1301,  1301,  1301,  1301,
    1301,  1301,  1301,  1301,  1301,  1301,  1301,  1301,  1301,  1301,
    1301,  1301,  1301,  1301,  1301,  1301,  1301,  1301,  1301,  1301,
    1301,  1301,  1301,  1301,  1301,  1301,  1301,  1301,  1301,  1301,
    1301,  1301,  1301,  1301,  1301,  1301,  1301,  1301,  1301,  1301,
    1301,  1301,  1301,  1301,  1301,  1301,  1301,  1301,  1301,  1301,
    1301,  1301,  1301,  1301,  1301,  1301,  1301,  1301,  1301,  1301,
    1301,  1301,  1301,  1301,  1301,  1301,  1301,  1301,  1301,  1301,
    1301,  1301,  1301,  1301,  1301,  1301,  1301,  1301,  1301,  1301,
    1301,  1301,  1301,  1301,  1301,  1301,  1303,  1302,  1304,  1304,
    1305,  1305,  1307,  1306,  1308,  1308,  1308,  1308,  1309,  1309,
    1310,  1310,  1310,  1310,  1311,  1311,  1311,  1311,  1312,  1312,
    1313,  1313,  1314,  1314,  1314,  1314,  1314,  1314,  1314,  1315,
    1315,  1315,  1316,  1316,  1316,  1316,  1317,  1317,  1317,  1318,
    1318,  1318,  1318,  1318,  1320,  1319,  1321,  1321,  1322,  1322,
    1323,  1324,  1324,  1324,  1324,  1326,  1325,  1327,  1327,  1328,
    1327,  1329,  1329,  1330,  1330,  1331,  1331,  1331,  1331,  1332,
    1331,  1333,  1333,  1333,  1333,  1333,  1334,  1335,  1335,  1335,
    1335,  1336,  1337,  1337,  1337,  1338,  1338,  1339,  1339,  1340,
    1340,  1341,  1341,  1343,  1342,  1344,  1342,  1345,  1342,  1346,
    1342,  1342,  1342,  1342,  1342,  1342,  1342,  1342,  1342,  1342,
    1342,  1342,  1342,  1342,  1342,  1342,  1342,  1342,  1342,  1342,
    1342,  1342,  1342,  1342,  1342,  1342,  1347,  1347,  1348,  1348,
    1349,  1349,  1349,  1350,  1350,  1350,  1350,  1351,  1351,  1352,
    1352,  1353,  1353,  1353,  1354,  1354,  1355,  1355,  1356,  1357,
    1357,  1357,  1357,  1357,  1358,  1358,  1359,  1359,  1360,  1360,
    1360,  1360,  1360,  1362,  1361,  1363,  1363,  1364,  1364,  1364,
    1365,  1365,  1365,  1366,  1366,  1367,  1368,  1368,  1369,  1370,
    1371,  1371,  1373,  1372,  1374,  1374,  1374,  1376,  1375,  1377,
    1377,  1378,  1378,  1378,  1379,  1380,  1380,  1381,  1382,  1383,
    1383,  1383,  1384,  1384,  1384,  1384,  1384,  1385,  1385,  1385,
    1385,  1385,  1385,  1386,  1386,  1387,  1388,  1389,  1389,  1389,
    1390,  1391,  1391,  1391,  1392,  1392,  1392,  1394,  1393,  1395,
    1395,  1396,  1396,  1398,  1397,  1399,  1399,  1400,  1400,  1400,
    1400,  1402,  1403,  1404,  1401,  1405,  1405,  1407,  1408,  1409,
    1410,  1411,  1406,  1413,  1414,  1415,  1416,  1412,  1417,  1417,
    1417,  1417,  1417,  1417,  1418,  1418,  1418,  1419,  1419,  1420,
    1420,  1420,  1421,  1421,  1422,  1423,  1422,  1424,  1424,  1425,
    1426
};

/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
static const yytype_uint8 yyr2[] =
{
       0,     2,     1,     0,     4,     2,     0,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     3,     1,     1,     4,     1,     2,     0,     4,     0,
       2,     3,     1,     2,     0,     3,     0,     5,     1,     3,
       3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
       3,     3,     1,     3,     3,     3,     3,     0,     7,     0,
      12,     0,    12,     0,    12,     0,     6,     0,     3,     4,
       4,     3,     2,    10,     1,     3,     2,     2,     2,     2,
       2,     2,     2,     0,    13,     0,     6,     2,     0,     1,
       3,     1,     0,     2,     0,     2,     0,     1,     3,     4,
       0,     2,     0,     2,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     0,     3,     1,
       0,     2,     0,     2,     2,     2,     2,     2,     3,     3,
       1,     1,     1,     2,     3,     3,     0,     4,     0,     3,
       0,     1,     3,     1,     0,     1,     3,     1,     0,     3,
       0,     1,     3,     1,     4,     0,     1,     1,     1,     0,
       3,     2,     3,     0,     3,     0,     5,     5,     0,     7,
       5,     0,     2,     1,     1,     1,     3,     1,     1,     3,
       0,     1,     1,     1,     1,     2,     1,     1,     3,     0,
       2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     0,     5,     0,     2,     0,     3,
       0,     2,     2,     2,     2,     0,     6,     2,     0,     2,
       1,     1,     3,     0,     0,     0,     7,     0,     2,     2,
       1,     1,     0,     0,     8,     0,     6,     1,     2,     1,
       2,     0,     0,     6,     0,     0,     6,     0,     2,     0,
       5,     0,     1,     0,     5,     0,     2,     0,     5,     4,
       0,     0,     8,     0,     7,     1,     1,     1,     1,     1,
       2,     4,     5,     0,     4,     4,     4,     3,     3,     2,
       2,     0,     2,     1,     2,     3,     1,     1,     1,     1,
       1,     2,     3,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     2,     3,     1,     1,     1,     1,     1,
       1,     1,     2,     3,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     2,     3,     1,     1,     1,     2,     2,
       2,     1,     1,     1,     1,     2,     3,     3,     3,     3,
       3,     3,     3,     3,     4,     0,     1,     1,     1,     1,
       1,     2,     3,     2,     4,     5,     0,     5,     0,     0,
       5,     0,     7,     0,     1,     0,     3,     0,     3,     5,
       5,     0,     4,     0,     3,     0,     3,     0,     1,     0,
       1,     1,     3,     1,     5,     5,     0,     2,     0,     0,
       7,     0,     9,     1,     3,     1,     1,     0,     2,     0,
       3,     1,     3,     0,     6,     1,     0,     4,     5,     1,
       1,     1,     3,     3,     1,     3,     1,     1,     0,     3,
       1,     3,     0,     4,     1,     0,     1,     2,     1,     3,
       4,     3,     3,     3,     4,     4,     3,     0,     0,     6,
       0,     1,     0,     1,     1,     2,     1,     1,     0,     1,
       1,     2,     1,     0,     3,     0,     1,     1,     2,     1,
       2,     3,     3,     3,     3,     3,     3,     3,     3,     3,
       3,     3,     3,     3,     3,     3,     5,     1,     1,     3,
       4,     4,     2,     2,     2,     3,     3,     4,     4,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     2,     1,     1,     1,     1,     1,     3,     1,     1,
       2,     2,     7,     8,     8,     8,     8,     2,     2,     0,
       1,     2,     0,     1,     2,     0,     4,     3,     3,     3,
       1,     2,     1,     1,     3,     2,     3,     2,     2,     1,
       3,     3,     2,     3,     1,     1,     2,     1,     1,     2,
       1,     1,     1,     2,     3,     2,     3,     2,     2,     3,
       3,     3,     0,     6,     0,     6,     2,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     2,     2,
       1,     2,     1,     2,     3,     2,     1,     1,     1,     1,
       1,     1,     1,     2,     0,     1,     1,     5,     0,     1,
       2,     1,     1,     1,     1,     3,     3,     3,     3,     0,
       1,     0,     1,     0,     1,     2,     1,     1,     2,     2,
       4,     1,     3,     2,     1,     2,     2,     2,     2,     1,
       2,     1,     1,     1,     1,     1,     0,     2,     1,     1,
       1,     1,     1,     0,     2,     1,     1,     0,     1,     0,
       2,     1,     2,     3,     2,     0,     1,     0,     1,     1,
       2,     0,     1,     0,     4,     1,     4,     3,     1,     0,
       1,     2,     1,     3,     3,     2,     2,     2,     1,     1,
       2,     2,     2,     1,     2,     2,     1,     1,     0,     1,
       1,     1,     1,     0,     1,     1,     1,     0,     1,     2,
       0,     1,     0,     1,     0,     1,     1,     2,     1,     2,
       1,     2,     2,     2,     3,     1,     1,     1,     1,     3,
       1,     1,     1,     4,     2,     1,     4,     0,     1,     0,
       2,     1,     3,     0,     6,     0,     5,     7,     0,     5,
       0,     5,     0,     5,     0,     4,     0,    10,     3,     4,
       3,     3,     7,     0,     3,     1,     4,     0,     3,     0,
       2,     0,     1,     0,     2,     2,     2,     2,     1,     1,
       1,     3,     4,     0,     6,     4,     0,     5,     0,     6,
       4,     1,     2,     1,     1,     0,     5,     0,     3,     2,
       0,     5,     0,     0,     6,     1,     3,     1,     1,     3,
       2,     3,     2,     4,     0,     6,     0,     0,     8,     4,
       4,     3,     3,     2,     2,     6,     5,     3,     5,     1,
       1,     1,     0,     1,     0,     1,     0,     1,     1,     0,
       2,     1,     0,     1,     1,     1,     0,     5,     3,     0,
       5,     3,     3,     0,     3,     0,     2,     1,     3,     0,
       1,     1,     0,     2,     1,     3,     0,     6,     0,     6,
       0,     5,     0,     1,     1,     0,     6,     0,     1,     1,
       2,     1,     1,     1,     0,     5,     2,     0,     5,     0,
       1,     1,     2,     1,     1,     1,     1,     1,     2,     0,
       5,     0,     1,     1,     0,     4,     4,     3,     5,     1,
       3,     3,     5,     1,     3,     2,     1,     1,     0,     6,
       1,     3,     3,     0,     2,     0,     4,     0,     2,     1,
       2,     4,     2,     3,     0,     3,     0,     0,     6,     2,
       1,     1,     2,     2,     8,     4,     0,     1,     2,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       0,     2,     4,     3,     1,     1,     4,     0,     0,     1,
       1,     0,     2,     2,     1,     1,     0,     2,     3,     3,
       3,     2,     3,     4,     3,     4,     3,     4,     1,     3,
       4,     3,     3,     6,     1,     5,     6,     5,     7,     6,
       8,     5,     6,     4,     4,     5,     3,     4,     1,     3,
       3,     3,     3,     3,     3,     5,     5,     3,     3,     3,
       3,     3,     3,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     3,     1,     1,     1,     1,
       3,     2,     2,     2,     2,     3,     3,     5,     6,     4,
       4,     7,     2,     6,     5,     6,     6,     4,     4,     5,
       4,     6,     2,     4,     4,     4,    10,     6,     8,     6,
       4,     4,     6,     4,     4,     4,     6,     4,     7,     7,
       7,     6,     6,     6,     6,     3,     4,     6,     8,     2,
       2,     4,     8,     8,     6,     6,     2,     4,     6,     6,
       8,     8,     6,     8,     6,     2,     4,     8,     8,     2,
       2,     2,     4,     4,     4,     4,     3,     8,     4,     6,
       4,     4,     4,     6,     8,     6,     4,     6,     1,     6,
       4,     4,     4,     4,     4,     6,     4,     0,     5,     6,
       2,     3,     0,     4,     0,     3,     0,     1,     1,     3,
       4,     4,     5,     4,     4,     4,     5,     4,     0,     0,
       7,     4,     5,     4,     5,     4,     4,     4,     4,     4,
       5,     0,     8,     0,     3,     3,     1,     4,     0,     1,
       0,     2,     0,     1,     0,     3,     2,     3,     2,     1,
       2,     1,     2,     1,     1,     1,     2,     0,     1,     1,
       3,     1,     3,     1,     3,     0,     1,     0,     2,     4,
       5,     1,     1,     1,     1,     4,     1,     3,     3,     3,
       0,     6,     0,     6,     0,     8,     4,     0,     8,     0,
      10,     6,     0,     8,     0,    10,     6,     1,     2,     2,
       0,     4,     3,     6,     0,     3,     0,     0,     5,     0,
       1,     0,     1,     0,     2,     3,     3,     1,     1,     0,
       7,     0,     7,     1,     2,     0,     0,     2,     0,     2,
       0,     1,     1,     1,     1,     3,     1,     3,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     0,     1,     1,     0,     2,
       0,     1,     0,     0,     3,     0,     0,     3,     2,     0,
       0,     4,     4,     2,     0,     2,     2,     3,     3,     1,
       2,     0,     1,     0,     4,     4,     2,     0,     1,     1,
       0,     1,     0,     1,     2,     1,     3,     3,     1,     1,
       1,     1,     0,     2,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     0,     0,     6,
       0,     1,     3,     1,     3,     0,     2,     3,     1,     2,
       1,     0,     3,     0,     0,     7,     2,     1,     0,     3,
       6,     0,     6,     4,     6,     4,     4,     4,     5,     4,
       4,     5,     6,     4,     1,     3,     1,     1,     3,     1,
       0,     2,     0,     1,     0,     0,     8,     0,     0,     6,
       0,     1,     1,     1,     1,     1,     2,     1,     1,     1,
       3,     4,     0,     3,     3,     1,     2,     2,     0,     3,
       0,     5,     3,     1,     3,     1,     3,     1,     1,     0,
       1,     0,     4,     0,     1,     3,     1,     1,     1,     0,
       0,     6,     0,     0,    11,     3,     1,     3,     3,     1,
       3,     0,     1,     0,     4,     0,     6,     0,     5,     0,
       6,     1,     3,     3,     5,     0,     2,     0,     2,     1,
       1,     1,     3,     0,     1,     0,     1,     1,     3,     1,
       1,     2,     2,     2,     1,     1,     1,     1,     0,     3,
       0,     3,     2,     4,     4,     3,     4,     4,     2,     1,
       3,     3,     6,    16,     2,     2,     0,     6,     5,     2,
       2,     2,     1,     1,     1,     5,     5,     2,     2,     1,
       4,     3,     2,     2,     2,     3,     2,     2,     1,     3,
       4,     3,     3,     2,     2,     3,     3,     3,     3,     3,
       3,     3,     3,     1,     1,     1,     1,     1,     0,     1,
       0,     2,     0,     1,     1,     1,     0,     2,     0,     2,
       0,     2,     2,     0,     4,     0,     4,     1,     1,     0,
       1,     1,     0,     1,     1,     0,     4,     3,     1,     0,
       3,     4,     2,     1,     1,     1,     1,     1,     1,     1,
       1,     0,     1,     0,     3,     3,     1,     1,     1,     2,
       0,     3,     3,     2,     2,     3,     0,     1,     1,     2,
       0,     4,     5,     0,     0,     0,    17,     2,     0,     1,
       0,     1,     1,     0,     1,     1,     0,     2,     2,     1,
       3,     4,     3,     3,     0,     2,     2,     1,     3,     3,
       0,     3,     0,     3,     2,     3,     1,     1,     2,     0,
       2,     1,     1,     2,     2,     1,     1,     1,     1,     1,
       2,     2,     1,     1,     1,     1,     1,     1,     1,     2,
       2,     2,     2,     2,     1,     1,     1,     1,     1,     1,
       1,     3,     5,     1,     1,     1,     1,     1,     3,     4,
       5,     1,     5,     3,     2,     1,     3,     2,     2,     4,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     3,     2,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     0,     4,     0,     1,
       1,     3,     0,     2,     1,     1,     1,     1,     0,     1,
       0,     1,     1,     1,     0,     2,     2,     2,     1,     2,
       4,     5,     4,     6,     2,     3,     3,     3,     5,     1,
       3,     3,     2,     2,     2,     1,     1,     4,     4,     1,
       1,     1,     1,     1,     0,     4,     1,     1,     1,     3,
       3,     1,     1,     2,     2,     0,     3,     4,     3,     0,
       7,     1,     2,     1,     1,     1,     1,     1,     1,     0,
       5,     1,     1,     1,     1,     1,     3,     6,     6,     6,
       7,     3,     8,     8,     8,     0,     1,     1,     2,     0,
       1,     1,     3,     0,     3,     0,     3,     0,     3,     0,
       3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     2,     2,     1,     3,     2,     2,     2,     2,
       2,     2,     2,     2,     1,     1,     0,     1,     3,     1,
       2,     2,     2,     1,     3,     3,     1,     1,     3,     1,
       3,     4,     5,     1,     0,     3,     3,     1,     1,     0,
       2,     2,     2,     2,     0,     2,     2,     1,     2,     2,
       2,     2,     2,     0,     3,     0,     1,     0,     3,     2,
       0,     1,     2,     0,     1,     4,     4,     5,     2,     3,
       0,     1,     0,     4,     0,     1,     1,     0,     2,     2,
       1,     0,     1,     1,     0,     5,     6,     0,     0,     2,
       2,     3,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     0,     3,     1,     2,     1,
       2,     3,     3,     3,     0,     3,     3,     0,     7,     0,
       3,     1,     3,     0,     3,     2,     4,     0,     3,     4,
       4,     0,     0,     0,    16,     8,     7,     0,     0,     0,
       0,     0,    15,     0,     0,     0,     0,    12,     4,     4,
       3,     4,     3,     2,     1,     3,     5,     1,     1,     0,
       1,     1,     0,     2,     0,     0,     3,     0,     2,     5,
       3
};

/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
   STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
   means the default is an error.  */
static const yytype_uint16 yydefact[] =
{
       0,  2315,   931,     0,  2263,     0,     0,     0,     0,     0,
       0,  2265,   107,    62,  1523,  1637,  1638,  1438,  1462,     2,
       0,   931,   157,     0,    74,  1464,     0,  1676,     0,     0,
     931,   407,     0,  1670,     0,     0,   931,  1467,  1663,     0,
     157,  2265,     0,   966,  2098,  1560,     0,     0,     0,  1543,
       0,  2155,  1512,     0,     0,     0,     0,     3,     8,    20,
       0,    39,    25,    29,    15,    19,    14,    37,    10,    53,
      54,    46,    12,    17,    43,    11,    13,    16,    35,    42,
      36,    38,    50,   959,    23,    24,    30,    44,    58,    21,
      55,    52,    22,  1639,    26,    45,    40,    32,    59,    33,
      51,    34,    57,    28,    47,    27,     9,    18,    48,    49,
      41,    60,    31,    56,     0,   801,     0,     0,   865,     0,
       0,     0,     0,     0,   784,  2313,  2314,  2315,   933,   932,
       0,  2147,  2146,   898,  2265,  1773,   916,     0,  1836,  1837,
    1838,  1839,  1840,  1841,  1842,  1787,  1843,  1844,  1846,  1845,
    1847,  1848,  1788,  1789,  1849,  1850,  1851,  1853,  1852,  1854,
    1790,  1791,  1855,  1856,  1857,  1792,  1793,  1858,  1859,  1794,
    1860,  1861,  1862,  1863,  1795,  1864,  1796,  1865,  1866,  1867,
    1868,  1869,  1870,  1797,  1871,  1872,  1873,  1874,  1876,  1875,
    1877,  1878,  1879,  1798,  1880,  1881,  1882,  1883,  1884,  1885,
    1886,  1799,  1887,  1888,  1889,  1905,  1800,  1890,  1893,  1892,
    1891,  1894,  1895,  1897,  1896,  1898,  1801,  1899,  1900,  1901,
    1903,  1902,  1907,  1908,  1909,  1802,  1904,  1910,  1906,  2078,
    1912,  1911,  1913,  1915,  1914,  1803,  1916,  1804,  1805,  1917,
    1918,  1771,  1919,  1772,  1921,  1922,  1923,  1928,  1929,  1806,
    1920,  1924,  1925,  1926,  1927,  1930,  1807,  1931,  1932,  1933,
    1934,  1935,  1936,  1937,  1938,  1939,  1940,  1950,  1943,  1945,
    1946,  1948,  1944,  1949,  1953,  1952,  1954,  1955,  1956,  1951,
    1942,  1947,  1957,  1958,  1941,  1959,  1960,  1961,  1962,  1963,
    1964,  1965,  1966,  1967,  1968,  1969,  1971,  1970,  1972,  1973,
    1974,  1975,  1976,  1978,  1977,  1979,  1980,  1981,  1983,  1982,
    1985,  1986,  1808,  1984,  1987,  1988,  1989,  1990,  1991,  1809,
    1810,  1811,  1992,  1993,  1812,  1994,  1995,  1996,  1813,  1997,
    1998,  2000,  1999,  2001,  2002,  1814,  1815,  2003,  2004,  2005,
    2006,  2007,  2008,  2009,  2010,  2011,  2012,  2013,  2014,  2015,
    2017,  2016,  2018,  2019,  2020,  2021,  2022,  1816,  2023,  1817,
    2024,  2025,  1818,  2026,  1819,  2027,  2028,  1820,  2029,  2030,
    2031,  2032,  2033,  2034,  1821,  2035,  2036,  1822,  2038,  2037,
    2039,  1823,  2041,  2042,  1824,  2040,  1826,  2043,  1825,  1827,
    2044,  2045,  2047,  2046,  2048,  2049,  2050,  1828,  2051,  1829,
    2052,  2053,  2054,  2055,  2057,  2056,  2058,  2059,  2060,  2061,
    2062,  2064,  2063,  2065,  2066,  2067,  2068,  2071,  2072,  2073,
    2074,  2069,  2070,  1830,  2075,  2076,  2077,  2079,  2080,  2082,
    2081,  1831,  1832,  2083,  2084,  1835,  2085,  2086,  2089,  2087,
    2088,  2091,  2090,  2092,  2093,  1833,  2094,  1834,  2095,   176,
    1776,   159,  1777,  1786,     0,   900,   917,  2266,  2267,   493,
     735,     0,     0,   736,     0,   492,   734,   157,  2315,   112,
       0,   489,   490,     0,     0,     0,  1537,     0,  1460,  1460,
    1460,     0,     0,  1460,  1460,     0,  1463,  1460,   157,  1460,
       0,    67,  1645,     0,     0,     0,     0,  1770,     0,  1470,
       0,  1677,  1678,     0,  1680,     0,     0,  2144,     0,     0,
       0,     0,     0,   157,   934,     0,  1521,     0,   896,     0,
    2267,  2278,   960,   964,   976,  2099,  2096,  1622,   885,   885,
     885,   883,   885,  1544,     0,     0,     0,  1521,  1679,  2367,
       0,     0,     0,  2363,     0,  2368,     0,   966,     0,     0,
       1,     5,     0,     0,  1900,  1996,  1635,  1633,  1765,     0,
     775,   802,     0,   780,     0,   778,  1782,  1781,  1780,     0,
     791,   790,   788,     0,   371,     0,     0,  2324,   782,   914,
       0,  2264,     0,   943,   953,   178,     0,    76,     0,     0,
       0,  2270,     0,     0,     0,     0,   111,     0,     0,     0,
     108,   997,   997,  2315,  2317,  2319,   493,   491,     0,     0,
       0,  1541,  1540,  1539,     0,  1537,  1837,  1787,  1848,     0,
    1738,     0,     0,     0,  1245,     0,  1792,     0,  1860,  1862,
    1797,     0,     0,  1006,  1006,  1006,     0,     0,     0,  1878,
    1879,  1747,     0,     0,     0,  1735,  1748,  1912,  1913,     0,
    1737,  1918,     0,     0,     0,     0,  1935,  1745,     0,     0,
    1966,  1968,     0,     0,  1972,  1973,  1974,  1975,  1722,  1061,
       0,  1006,  1734,  1744,  1989,  1728,  1997,  2001,  2002,     0,
    2010,     0,     0,     0,  2033,  2036,     0,     0,  2054,     0,
       0,  1006,  1721,  2071,  2072,  2073,  2074,     0,  1736,  1830,
    1746,     0,  2085,  1006,  1006,  1006,     0,     0,     0,  2092,
    2095,     0,     0,     0,     0,  1060,     0,  1213,     0,  1239,
    1018,  1024,  1038,     0,  1053,  1071,  1072,  1074,  1168,  1073,
    1079,  1078,  1439,  1732,  1077,  1076,  1733,  1070,  1755,  1776,
    1754,     0,     0,     0,     0,     0,     0,     0,     0,  1618,
       0,     0,     0,  1460,    69,     0,  2189,  2204,  2205,  2201,
    2206,  2224,  2207,  2211,     0,  2203,  2195,     0,  2210,  2199,
    2208,     0,  2193,     0,  2209,  2214,  2225,  2197,  2202,  2181,
       0,  2187,  2191,  1767,  1345,  2158,  2159,     0,    75,  1472,
    1473,  1471,   864,     0,  1675,  1690,     0,     0,     0,   929,
     417,   408,     0,  1617,  1616,     0,  1671,  2279,     0,     0,
     905,  1475,  1522,     0,  1474,  1668,     0,  1667,  1664,  1666,
       0,  2189,  2176,     0,  2273,  2270,  2280,   989,   982,   981,
     984,   985,   988,   986,   987,   983,   980,   997,   977,   979,
    2102,  1582,     0,   671,     0,  1630,     0,  1583,     0,     0,
    1630,     0,  1380,  1620,  1623,     0,  2111,  1598,   732,   731,
       0,   730,  2112,  1616,     0,     0,     0,  1569,  1584,     0,
    1545,  1589,  2113,     0,  1619,     0,  1380,  1630,     0,  1561,
       0,     0,     0,     0,   879,   889,   881,   876,     0,   882,
     878,  1542,  1456,  2380,  2156,   864,  1727,  1726,  1774,  2364,
    1725,  2372,  2374,  2360,  2362,  2369,   962,     0,  2284,     6,
      61,     0,  1642,  2322,  2323,  2321,   687,     0,  1006,  1783,
    2316,   160,   789,     0,   372,   160,     0,     0,     0,     0,
       0,   373,   374,   310,   773,   786,     0,     0,   785,  2324,
       0,     0,  1454,     0,     0,   945,   955,   180,   177,   158,
       0,   902,   919,  2269,     0,     0,  2271,  2275,  1059,  1058,
       0,   105,   110,     0,     0,     0,  2243,   109,  2239,  2320,
     997,   997,   997,  2312,     0,  2300,  2307,  2308,  2311,  2310,
    2309,  2306,     0,  2299,  2302,  2303,  2305,  2304,  2324,  2318,
       0,   737,   737,   737,     0,  1524,  1527,  1531,  1535,  1538,
       0,     0,  1350,  1092,  1350,  1350,  1350,  1246,     0,     0,
       0,     0,     0,     0,     0,     0,  1350,     0,  1129,  1102,
       0,  1130,     0,     0,     0,     0,     0,  1741,     0,     0,
       0,     0,     0,     0,  1218,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  1241,  1243,  1754,  1350,     0,     0,
    1350,     0,     0,     0,     0,     0,  1011,     0,  1136,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1350,  1350,     0,     0,  1350,     0,  1145,     0,  1743,     0,
       0,     0,  1742,     0,     0,  1740,  1739,  1723,     0,  1149,
    1151,  1150,     0,  1350,  1350,     0,     0,  1082,  1081,  1083,
    2297,     0,     0,     0,     0,     0,     0,  1057,  1056,  1055,
    1054,     0,     0,     0,  1062,     0,  1063,  1064,     0,  1065,
    1066,  1067,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,  1084,     0,     0,     0,  1724,  1177,     0,  1461,  1443,
    1449,  1445,     0,  1618,  1446,  1453,   385,     0,  1450,  2237,
    1447,   866,     0,     0,    68,  1659,  1653,  1655,  1658,  1654,
       0,  1660,  1657,  1656,  2147,  1646,  1648,  1649,  2190,  2188,
    2222,  2221,     0,  2223,  2219,  2212,  2244,  2216,  2244,  2218,
    2217,  2244,  2213,  2220,  2244,  2185,     0,  1346,  1347,     0,
    2157,     0,  1766,     0,     0,  1691,     0,  1692,  1681,  1688,
     948,     0,  1345,  2145,  2148,     0,   418,   415,   413,   426,
       0,     0,    64,    65,     0,   936,     0,   935,   939,     0,
       0,     0,  1478,  1468,  1477,  1669,     0,     0,  2188,  2185,
    2274,     0,  2276,  2291,   965,  2281,   995,   967,   994,     0,
     978,  2097,  2100,  2108,  1626,   670,     0,     0,  1597,  1579,
       0,   493,     0,     0,     0,     0,     0,     0,  1562,     0,
       0,   530,     0,  1588,  1381,  1624,  1625,  1630,     0,     0,
    1630,     0,  1592,  1603,  1593,     0,  1620,     0,  1630,  1557,
       0,     0,  1549,  1554,  1550,     0,  1556,  1555,  1558,  1546,
    1547,  1575,  1604,  1620,  1580,  1587,  1596,     0,  1574,  1581,
       0,  1568,  1594,  1620,  1620,  1630,  1630,   892,   891,   890,
     886,   887,   892,     0,  1280,     0,     0,  2361,  2375,  2359,
    2370,  2371,  2358,   963,  2285,   961,  2286,     0,     7,     4,
    1636,  1634,  1643,  1644,   688,   687,   484,   487,   486,     0,
       0,  1785,     0,   781,     0,  1618,   779,     0,     0,  1618,
     321,  1618,   375,   687,   793,     0,     0,   783,   915,     0,
       0,   947,   942,   946,   944,   727,   726,     0,   954,     0,
     181,   183,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,    77,    78,
      92,   904,   903,   901,   927,   926,   924,     0,   925,   923,
     918,   920,   921,  2268,  2272,   494,   687,  1618,     0,   313,
       0,     0,     0,     0,     0,   493,     0,     0,  2301,    97,
     738,     0,     0,     0,  1529,  1457,  1525,  1459,  1765,     0,
       0,     0,  1345,     0,     0,  1351,  1350,     0,  1224,     0,
       0,     0,     0,  1247,     0,     0,     0,     0,     0,     0,
       0,  1198,     0,  1224,  1007,     0,  1156,     0,     0,     0,
       0,     0,  2297,     0,  1319,  1320,  1321,  1322,  1332,  1323,
    1324,  1325,  1334,  1339,  1326,  1327,  1335,  1336,  1337,  1328,
    1338,  1333,  1329,  1340,     0,  1318,     0,  1343,  1341,  1344,
    1342,     0,  1219,  1211,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1350,     0,     0,     0,  1350,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  1350,     0,     0,     0,  1331,     0,  1330,     0,
       0,     0,     0,     0,     0,     0,  1125,     0,  1757,  1756,
       0,     0,     0,     0,   966,     0,  1086,     0,  1085,     0,
    2114,  1214,  1216,     0,  1009,  1008,  1010,  1021,  1014,  1019,
    1012,  1016,     0,  1068,  1842,  1022,     0,     0,  1050,     0,
    1359,  1051,  1036,  1041,  1042,     0,  1039,  1040,     0,  1044,
       0,  1043,  1047,  1048,  1049,  1052,     0,     0,     0,     0,
    1075,  1080,  1240,   997,  1758,     0,  1441,   385,   388,   387,
    1451,   386,  1499,     0,   868,   867,  1448,   866,     0,    70,
      72,  1652,     0,     0,  1661,  2215,     0,  2196,  2200,  2194,
    2198,     0,     0,  2186,     0,  2192,  1349,  1908,  1982,     0,
    1352,  2161,  1465,  2379,  1687,  1689,     0,     0,  1682,     0,
       0,   930,     0,     0,     0,   428,   411,     0,    66,     0,
       0,  1672,     0,     0,     0,     0,   907,  1476,     0,  1665,
       0,     0,     0,     0,     0,  2277,  2293,  2292,  2282,   997,
    1371,   998,  1000,   999,  1754,  2102,  2105,  2106,  2109,  2107,
       0,  2104,  2103,  2118,     0,  1628,  1631,  1632,     0,     0,
    1612,  1606,  1605,  1601,  1607,  1602,  1615,  1614,  1613,  1571,
    1570,  1390,  1391,  1389,  1384,  1385,  1388,  1565,  1621,  1611,
    1609,  1599,     0,  1630,  1610,  1608,  1551,  1552,  1553,     0,
    1380,     0,  1630,  1620,     0,  1630,  1630,  1591,  1595,     0,
     880,   889,   877,   884,  1290,  1289,     0,  1254,     0,  1256,
    1253,  1252,  1251,     0,  1289,  2365,  2373,  2377,     0,  1380,
    2290,  2288,   485,  1499,  1499,     0,  1784,     0,     0,     0,
       0,     0,     0,     0,   161,   170,     0,     0,   319,   320,
    1499,   318,   361,   362,   365,   366,   367,     0,     0,     0,
       0,     0,     0,     0,     0,   114,   368,  1499,  1499,   315,
     341,   342,   345,   346,   347,   348,   349,   311,     0,   316,
     862,   862,     0,  1499,  1499,   862,  1499,     0,     0,  1499,
    1499,     0,     0,  1499,     0,     0,   862,     0,  1499,   860,
       0,     0,  1499,  1499,  1499,  1499,   862,     0,     0,  1499,
     405,  1499,     0,     0,   872,     0,     0,  1499,     0,     0,
    1499,  1499,  1499,   809,   859,   497,   517,   518,   774,   808,
     810,   821,   403,     0,   838,   861,     0,   795,   797,  2325,
    2326,  2327,   899,  1455,  1310,   179,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   928,   922,   106,   687,  1499,  1499,
    1499,  1499,   317,   350,   351,   354,   355,   356,   357,   360,
     358,   359,     0,     0,  1618,     0,  2240,     0,  2353,     0,
       0,     0,   159,   495,     0,     0,   739,     0,     0,     0,
       0,     0,  1352,     0,  1768,  1532,  1280,  1536,  1535,  1533,
       0,  1152,     0,  1191,     0,  1193,  1194,  1195,     0,     0,
       0,     0,     0,  1153,     0,  1100,  1154,  1155,     0,     0,
       0,     0,  1197,     0,  1131,     0,     0,  1103,  1104,  1097,
    1089,     0,  1170,     0,     0,  1105,     0,     0,     0,     0,
       0,  1171,  1242,     0,  1244,  1758,     0,  1203,  1158,  1110,
       0,  1201,     0,  1111,  1172,  1173,  1174,  1137,  1160,  1161,
       0,  1176,     0,  1162,     0,     0,     0,     0,  1113,  1207,
    1205,     0,     0,     0,     0,  1209,  1146,  1115,     0,     0,
       0,  1114,     0,     0,     0,     0,     0,     0,     0,  1117,
       0,  1098,  1206,  1208,  1166,     0,  1126,  2294,  2294,     0,
    1090,     0,     0,     0,     0,     0,  1759,  1015,  1020,  1013,
    1017,     0,     0,     0,     0,     0,  1034,  1033,     0,     0,
       0,     0,  1359,  1037,     0,     0,  1187,  1188,  1237,     0,
    1444,  1442,  1452,  1497,  1498,  1500,     0,  2238,  1440,    73,
       0,     0,  1647,  1662,  1650,  2248,     0,  2247,  2233,  2236,
    1765,     0,     0,     0,  2171,  2165,  2172,  2174,  2168,  2173,
    2175,  2166,  2167,  2162,  2169,  1353,  1382,     0,     0,   949,
     950,   953,     0,  2151,  2152,  2150,  2149,   997,   416,   414,
    1415,  1416,  1401,  1402,  1400,  1403,   427,  1404,  1414,     0,
     439,     0,   419,  1674,  1673,     0,   937,   940,   941,   912,
     911,   913,   906,   908,   909,   477,  1482,     0,     0,     0,
    1488,  1469,  1479,   897,     0,     0,     0,     0,     0,   993,
    1280,  1431,   990,   971,  1382,  1372,   970,  1001,     0,  2101,
       0,  2069,  2129,     0,     0,     0,     0,     0,  2119,  1627,
       0,  1576,     0,  1600,     0,     0,     0,  1567,     0,  1590,
    1548,  1566,  1352,  1620,  1563,  1564,   894,   893,   888,  1289,
    1280,     0,     0,  1277,  1291,     0,  1291,  1280,  1280,     0,
    1280,  1345,  1286,     0,     0,  2376,  1373,  2289,     0,     0,
     777,   164,   167,   165,     0,   166,     0,     0,   370,   369,
       0,  1618,   363,   118,   117,   119,   120,  1398,  1399,  1395,
    1396,  1394,  1397,   122,   121,   116,   792,     0,     0,     0,
    1618,   343,   322,   323,   326,   327,   328,   863,   767,   931,
     842,     0,   559,   767,   723,   728,   728,   840,     0,   931,
       0,     0,     0,     0,     0,   931,     0,     0,     0,  1499,
       0,   853,   804,     0,     0,     0,     0,     0,   854,     0,
     805,  1499,     0,     0,     0,     0,     0,   931,     0,     0,
       0,     0,   931,   822,   875,   874,   873,     0,   931,   931,
       0,   523,   524,   522,     0,     0,     0,   498,   687,   806,
     404,   807,   562,     0,   869,   559,   565,  1761,     0,     0,
       0,   128,  2329,  1313,     0,  1314,  1311,  1312,   182,    84,
      80,    93,  1408,  1409,  1407,  1405,  1406,    94,    82,    83,
      87,    86,    88,    89,    90,    85,    91,    81,    95,    96,
      79,     0,     0,     0,     0,  1618,   352,     0,     0,  1499,
     312,   329,   330,   333,   334,   335,   336,   337,   340,   338,
     339,     0,  2241,     0,     0,   306,   305,     0,   123,  2347,
       0,     0,   562,    98,   403,   496,   499,   760,   762,   761,
     753,   752,    99,   101,   103,  1458,  1535,  1280,  1371,  1766,
    1352,     0,  1345,     0,     0,  1192,  1225,     0,  1248,     0,
    1094,   649,   649,  1235,  1233,   634,   649,  1229,  1234,  1231,
       0,   673,     0,   672,     0,     0,     0,  1199,  1196,     0,
       0,     0,     0,  1222,     0,     0,     0,  1099,     0,  1182,
    1204,  1202,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  1210,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  2298,  2298,  1087,  2115,
    2116,  2117,   769,  1215,     0,  1031,  1027,     0,  1025,  1358,
    1046,  1045,     0,     0,     0,  1035,   998,  1178,   997,     0,
    1238,  1760,   384,   529,    71,  1651,  2245,     0,     0,     0,
       0,     0,     0,     0,     0,  2160,  1383,  1509,  1775,  1683,
       0,   957,  2153,  2154,     0,   417,     0,   409,   412,     0,
     420,   421,   423,     0,   910,   976,     0,  1501,  1486,  1493,
    1487,     0,     0,     0,  1485,  1750,  1749,  1756,  2280,     0,
       0,     0,     0,  2283,  1352,  1352,  1425,     0,     0,   968,
     973,   969,   972,     0,   996,  1005,  1004,  1751,  1758,     0,
       0,     0,     0,   675,   674,   683,     0,     0,     0,  2114,
       0,   679,   681,   680,  2124,   678,  1629,  1380,  1586,  1585,
    1387,  1386,     0,  1559,  1578,  1630,     0,  2287,  1284,     0,
    1279,  1278,  1292,     0,  1280,  1291,  1291,     0,  1259,  1258,
    1513,  1516,     0,  1257,  1308,  1282,   976,  2366,  2378,     0,
     686,   685,   528,   682,   527,   169,   168,   174,   175,   390,
     376,   389,   364,   115,   377,   378,   344,     0,   324,   564,
     768,   825,     0,     0,     0,   728,   558,   767,   557,   560,
     737,   729,   767,   767,     0,     0,   509,   506,   844,   512,
     823,   816,   824,   835,   837,     0,   508,   525,     0,     0,
     514,   767,   811,   851,   852,   866,   502,     0,   538,   539,
     537,   519,   526,   504,   505,   846,     0,  1367,  1369,  1377,
     511,   510,   406,   507,     0,   857,   830,     0,   536,   534,
     531,   533,   532,   535,   515,   513,   503,  1661,   862,   862,
     839,     0,   546,   548,   549,  1764,     0,   871,   841,     0,
     550,   551,     0,     0,     0,   138,     0,     0,   794,     0,
     131,   129,   140,     0,     0,   956,     0,   383,   382,   381,
     380,   353,     0,     0,     0,  1618,   331,  2242,     0,  2354,
     309,   307,   308,     0,     0,   184,   544,   545,   543,   542,
       0,   393,     0,  1813,   391,     0,     0,  1693,   687,   500,
       0,     0,     0,     0,  1352,  1392,  1769,  1528,  1534,     0,
    1127,  1249,     0,     0,   650,  1226,   689,     0,  1236,   636,
     635,  1228,  1230,  1232,  1093,  1101,  1169,  1096,  1095,     0,
       0,     0,  1134,  1135,  1220,  1223,     0,     0,  1107,     0,
    1109,     0,     0,  1184,  1159,  1175,  1138,  1163,     0,  1112,
    1088,     0,  1139,     0,  1144,  1142,     0,  1116,     0,     0,
    1123,     0,  1121,     0,  1122,     0,  1124,  1165,  1167,  2295,
       0,     0,  1217,  1023,     0,  1032,  1029,     0,  1026,  1001,
    1189,  1179,  2246,  2235,  2234,  2249,  2249,  2249,     0,  1354,
       0,  1466,  1693,   951,     0,   952,   998,   436,     0,   443,
       0,   441,   410,     0,   938,   997,  1483,  1495,     0,  1503,
       0,     0,  1480,  1490,     0,     0,     0,  1489,     0,  2178,
    2179,  2177,  1382,  1360,     0,     0,  1437,     0,  1432,   991,
       0,  1003,  1002,     0,  2131,     0,  2130,  2142,  2143,  2140,
    2141,  2139,  2120,     0,  2126,  2125,     0,     0,     0,  2136,
    2127,     0,     0,  1577,     0,  1572,   895,     0,  1280,  1255,
    1280,  1266,     0,     0,  1280,  1262,  1260,  1264,     0,  1352,
       0,  1281,  1305,   997,  1753,  1374,  1377,   325,   827,   561,
     767,   724,   725,   737,     0,   737,   737,     0,     0,   815,
       0,   919,     0,   820,   683,   520,   850,   849,   521,     0,
     813,     0,  1378,  1379,  1370,   812,   832,   818,     0,   843,
     562,   870,   703,   630,   579,   570,   649,   573,   572,   616,
     587,   584,   634,   632,   602,   634,   634,   609,   608,   626,
     612,   592,   689,   689,   591,   629,   689,   613,   611,   615,
       0,   617,   634,   622,   610,   614,   631,   607,   604,   628,
     649,   649,   585,   588,   627,   689,     0,   620,   649,   653,
     590,   689,   695,     0,     0,   649,   651,  1763,   139,   127,
       0,     0,   796,   798,     0,     0,   799,  2331,     0,  2333,
    1315,     0,   314,   379,   332,     0,   195,   997,     0,     0,
     185,   187,   188,     0,     0,     0,   495,  1695,  1694,   392,
     480,   501,     0,     0,     0,  1535,  1530,     0,  1526,     0,
    1250,     0,     0,     0,     0,   695,   697,   691,   695,     0,
    1227,     0,  1200,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  1091,     0,  1180,     0,     0,     0,     0,     0,
       0,  1120,  1118,  1119,  2296,   770,  1028,     0,  1190,     0,
    2254,  2254,  2254,  1508,  1507,     0,  1506,  1510,     0,   958,
       0,     0,     0,     0,   440,     0,   422,   478,     0,     0,
       0,  1504,  1492,  2284,  1481,  1484,  1758,  2180,   975,     0,
    1355,  1436,  1433,     0,  1426,  1428,  1430,     0,  1752,     0,
       0,  2135,  2121,   684,     0,     0,     0,     0,  2122,     0,
    1345,  1285,     0,  1251,  1280,  1280,     0,  1251,     0,     0,
       0,  1515,  1371,  1517,  1309,     0,  1287,     0,  1376,     0,
       0,   826,     0,     0,     0,     0,     0,   856,     0,   869,
     817,   836,   858,   653,   931,  1368,   831,   833,   907,   516,
     547,   709,   578,   571,   589,   638,   633,     0,   638,   638,
     598,   616,   593,     0,   689,   606,   597,   618,   621,   623,
     625,   638,     0,   689,   586,   595,   582,   638,   661,     0,
       0,     0,   657,     0,   702,     0,   664,   566,   654,   656,
       0,     0,   619,   689,   575,   696,   695,   577,   689,   695,
     638,     0,   652,   638,     0,   125,   130,   141,   142,   787,
    2330,     0,  2328,     0,     0,     0,   198,   196,   197,     0,
     191,   193,   188,  2341,     0,  2348,     0,     0,  2346,   394,
     396,   403,   481,     0,     0,  1377,   765,     0,     0,  1393,
    1128,   647,   645,   648,   646,   690,   698,   699,     0,   694,
     692,   695,     0,  1132,  1133,  1221,  1212,  1157,     0,  1108,
    1181,     0,     0,  1164,  1140,  1143,  1141,  1147,  1148,  1030,
       0,     0,  2253,  2251,     0,  2252,  2250,  2226,     0,  2183,
    2184,  2182,  2170,     0,     0,     0,   424,   997,   429,     0,
     446,   445,   442,  1382,  1494,  1496,  1502,  1491,     0,  1356,
    1371,   676,  1429,     0,   992,  2133,  2132,  2134,  2128,     0,
       0,     0,     0,  1283,  1267,     0,  1271,  1276,  1272,     0,
    1263,  1261,     0,  1392,  1297,  1298,     0,     0,  1303,  1307,
    1382,  1377,   829,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   855,  1729,   845,   847,   814,     0,
     819,     0,     0,     0,   704,   705,   710,   712,   642,   643,
     644,   599,   639,   641,     0,   601,   569,   594,   624,   600,
       0,   596,   583,   667,   666,  1006,   659,   669,     0,     0,
     665,   655,   663,   658,   574,   576,   580,   581,   567,     0,
     568,  1762,   132,   800,   246,  2332,   966,     0,  2337,   113,
    2345,  2355,   195,     0,     0,   136,     0,   186,   189,  2284,
    1693,     0,   399,   740,     0,   764,     0,   742,   744,   700,
     693,     0,     0,  1183,  1185,  2232,  2231,  2230,  2227,     0,
       0,     0,     0,     0,     0,  2255,  2257,  1505,     0,     0,
       0,   437,     0,   433,   435,     0,   465,   479,   990,   540,
    1364,  1377,     0,  1382,     0,  1434,  1427,  2138,  2137,  2123,
       0,     0,     0,     0,     0,     0,  1316,  1514,  1293,  1293,
    1304,  1288,  1375,   828,     0,     0,   740,     0,     0,  1731,
    1730,   869,     0,   715,   716,   717,     0,     0,     0,   708,
     711,   640,     0,   771,     0,   668,  1006,   662,     0,   134,
     272,     0,   258,   244,     0,     0,     0,   248,   143,   146,
     144,     0,   145,   151,     0,   152,   153,   154,   155,   156,
     147,   270,   271,   150,   148,   149,     0,  1778,     0,  1779,
    2335,     0,     0,  2334,   162,   192,     0,     0,   128,   137,
    2349,   397,   395,     0,  2280,  1499,   100,   741,   756,   755,
     746,  1377,     0,     0,   102,   743,   758,   750,   104,   745,
     757,   748,   637,  1106,  2228,  2258,  2261,  2259,  2260,  2262,
    2256,     0,  1684,   998,     0,   430,   431,     0,     0,     0,
    1499,     0,     0,  1499,  1499,  1499,  1499,   458,   466,   468,
       0,   541,     0,     0,  1361,  1363,  1357,  1417,   677,  1696,
       0,  1268,     0,  1273,     0,  1265,     0,     0,  1301,  1299,
       0,   740,   552,   742,   744,   848,     0,   719,     0,   718,
       0,   713,   714,   709,     0,   689,     0,   689,   660,   133,
       0,   126,     0,     0,   257,   260,     0,     0,   263,   253,
     252,   254,     0,   247,   246,   246,   300,   251,   297,   296,
     289,  2284,     0,     0,     0,  2356,   194,   997,   140,     0,
     401,   400,     0,   747,   763,   766,     0,   751,   749,  1511,
    1519,     0,   676,     0,   438,   437,   434,     0,     0,     0,
    1499,  1499,     0,     0,     0,     0,     0,   444,   467,  1499,
    1365,  1366,  1377,     0,   974,     0,  1704,     0,     0,     0,
    1317,     0,  1294,     0,     0,     0,   556,   555,   553,   554,
       0,   721,   722,   720,   706,   707,   603,   772,   605,   135,
     273,   284,   287,   279,   259,     0,     0,     0,   249,   246,
       0,   233,   231,   232,   238,   239,   240,   241,   242,   243,
     234,   237,   235,   236,   246,     0,   203,     0,     0,  2336,
       0,  2338,     0,   172,   171,   163,     0,   246,  2342,     0,
    2350,  2284,   754,   759,     0,     0,  1685,   425,   432,     0,
     454,   456,   457,   451,     0,   447,   449,   450,   476,     0,
       0,  1412,  1410,  1411,   472,  1413,   473,   471,   469,   462,
       0,   460,     0,  1362,  1418,     0,     0,     0,     0,  1697,
    1699,     0,  1435,     0,  1270,  1275,  1296,  1295,  1310,     0,
     834,     0,     0,   246,   280,     0,   255,     0,     0,     0,
       0,   201,   303,     0,   199,   291,   291,  2339,  2340,   173,
    2357,     0,   142,   162,   402,  1518,  1520,  1696,   448,     0,
    1962,     0,   474,   475,     0,   459,     0,   470,     0,     0,
       0,     0,     0,  1698,     0,     0,  1705,  1707,     0,     0,
       0,   281,   287,   277,   285,   246,     0,     0,   245,   264,
     299,   202,     0,   301,     0,   246,     0,   290,   292,   294,
       0,   124,  2351,  1704,   455,   452,   453,   465,   464,   461,
     997,  1702,  1703,     0,  1700,     0,     0,  1706,     0,  1302,
    1300,     0,   278,     0,     0,   276,   256,   261,   246,     0,
     246,   214,   213,     0,   205,   227,   298,     0,   204,  2343,
     246,  1710,   463,     0,     0,  1421,  1423,  1701,  1709,  1708,
       0,   282,     0,   246,     0,   246,     0,   246,     0,     0,
       0,     0,     0,   200,   246,  2352,     0,  1712,   998,  1419,
     997,  1573,     0,   274,   246,   262,   267,   304,     0,   208,
     228,   229,     0,   211,  2344,     0,     0,  1719,  1424,  1422,
     246,   246,   263,   266,   302,     0,     0,   206,   220,   207,
     218,   210,     0,  1711,  1714,     0,     0,  1716,  1717,     0,
    1686,   246,   246,   268,   226,   224,   246,   215,   222,   217,
       0,   223,   230,   221,     0,   212,  1718,  1713,     0,  1720,
       0,   209,   225,   219,  1715,   216
};

/* YYDEFGOTO[NTERM-NUM].  */
static const yytype_int16 yydefgoto[] =
{
      -1,    56,   552,  1339,    57,    58,    59,    60,    61,  1222,
      62,   754,  1164,  1629,  1630,    63,   498,    64,   950,  1398,
    1399,  1400,    65,  1933,  2780,  2781,  2782,  1416,   468,   469,
    1804,  1805,   973,  2764,  2738,  3462,  2742,  3569,  3701,  3608,
    1877,  3056,  3463,  3464,  3578,   493,  1931,  1353,  3725,  1784,
    3825,  1785,    66,   585,   948,  1379,  1380,  3069,  3070,  3297,
    3071,  3289,  3290,  3291,  3292,  3945,  3799,  3894,  3946,  4010,
    4045,  4051,  4052,  3983,  4066,  4067,  4068,  4074,  4069,  3984,
    4047,  3800,  3801,  3708,  3802,  3581,  3803,  3712,  3804,  3584,
    3805,  3806,  3807,  3808,  3937,  3809,  3707,  3976,  3796,  3797,
    3978,  4026,  4043,  3810,  3591,  3702,  3881,  3592,  3703,  3932,
    3792,  3933,  3971,  4022,  3793,  3882,  3974,  3885,  3811,  3817,
    3947,  3812,  3818,  3813,  3596,  3719,  3816,  3717,  3815,  3980,
    3942,  2397,  2763,   570,   571,   596,  1924,   572,   962,   922,
    1355,  1817,  1818,  2262,  2263,  2380,  2381,  2382,  1809,  1810,
    1811,  1912,  1913,  1914,  1791,  1792,  1793,  1359,  1788,  1789,
     573,   923,   933,  1812,  1813,  1814,  2386,  1916,  1917,  1918,
    1919,  1815,  1620,  1816,  2640,  2403,  2774,  3479,  3079,  3614,
    3831,  2329,  2330,  2310,    67,   509,   801,  1219,  2141,  1663,
    1662,  1220,  2539,  2540,  2541,  2128,  3358,  1665,  2140,  3511,
    3745,  3512,  3513,  2876,  3645,  2537,  2880,  2881,  3143,  3360,
    3516,  3845,  3846,  3847,  3839,  3840,  3841,  3757,  3860,  3861,
    3914,  3957,  3657,  3658,  3659,  2160,  2545,  3363,  3303,  1906,
    1345,  1346,   470,   471,   472,   593,  2404,  1864,  2405,  2406,
    1866,  1867,  2512,  1270,  2714,  2691,  3517,  2770,  2721,  2722,
    2723,  2724,  2658,  2659,  2271,  2272,  2335,  2732,  3039,  3227,
    3242,  3040,  3041,  3042,  3043,  3044,  3045,  3046,  2798,  2799,
    3431,  3432,  3433,  2794,  2795,  3273,  3257,  3258,  3259,  3446,
    3099,  2584,  2585,  3525,  2593,  2594,  2631,  2924,  2632,  1349,
    3100,  3267,  3319,  3260,  2731,  3221,  3424,  3558,  3425,  3426,
    3427,  3691,  2273,  2657,  2274,  2662,   878,   473,  2275,  2276,
    1430,  1431,  3616,  3624,  3628,  3617,  3629,  3625,  3618,  3619,
    3620,  3631,  3627,  2410,  3304,  3305,  2649,  2852,  3562,    68,
    1363,   916,   925,   921,   939,   577,  1364,  1878,  2341,  3279,
     560,  1868,  3214,  2971,  3218,  1869,  2671,  1870,  2958,  3201,
    1871,  2986,  3216,  3419,  2672,  2673,  1872,  1873,  1874,  2970,
    2979,  3551,  2277,   123,  1626,  2728,  2317,    69,  1322,  1317,
      70,   889,   884,   885,  1320,  1321,  1750,  2207,    71,   820,
      72,   580,    73,   588,  1403,    74,  1230,  2152,  2153,  2154,
      75,   940,    76,    77,   589,  1410,  1411,  1412,    78,  1215,
     130,    79,   809,  1225,  1227,  1228,    80,   582,   583,  1372,
      81,  1657,  2119,  2120,   945,   946,  1378,  2875,    82,    83,
     549,   522,   826,   523,   524,  1690,  2172,  3518,   837,   838,
     839,  2569,  1247,  1248,  1249,  2177,  1691,  2574,  1018,   719,
     720,   721,   722,  1112,  1113,  3261,   723,  1122,  1586,   724,
     725,   726,   727,   728,   729,  1613,  2822,  2823,  3114,  2075,
    2076,  2077,   730,  1971,  2809,  1984,   731,  1105,  1571,  1503,
    3106,  2814,  1447,  1954,  2440,  2509,  2049,  1043,  1044,  1008,
    1961,  1453,  1757,  1758,  1759,  1760,  1761,  3189,  3188,  3190,
    3531,  3385,  3533,  3389,  2218,  1762,  1763,  2607,  2938,  2625,
    2626,  3400,  2209,  1764,  2613,  3678,  3397,  3398,  3775,  3774,
    3399,  3194,  3195,  2951,  2952,  2344,  2345,  2346,  3535,  1494,
    1547,  1495,  1501,  1199,  1200,  1448,  2116,  2524,  3370,  3522,
    2066,  3160,  3520,  3664,  1875,  2697,  2698,  2174,  2175,  2629,
    2955,  2984,  1273,  3519,  2526,  1724,  1725,  3088,  4050,  2641,
    2357,  3854,  2137,  2138,  3764,  3918,  3994,  3995,  3996,  2906,
    2907,  3164,  3165,  2176,  2566,  2908,  3371,  3669,    84,   477,
      85,  2081,  2093,   942,  1434,  1435,   742,   490,    86,   499,
    2117,    87,   516,  1678,   792,   813,  1233,  1234,  2161,  2546,
    2553,  2162,  2558,  3153,  2548,  2886,  2887,  2085,  2086,  2549,
    2889,  3150,  3135,  3136,  2871,  3354,    88,   537,  2949,  2620,
    2621,  3739,  3740,   814,    89,   476,   995,  1942,  1440,  1941,
     996,   997,  1944,   614,   615,    90,   534,  1298,  1299,  1300,
    1740,    91,   527,   879,  2597,  1719,   805,  1157,  1277,   882,
    1278,  1705,  2191,  1258,    92,   912,   911,    93,   556,  1341,
      94,   755,  1175,  1176,  1634,  2094,    95,   517,   818,   819,
      96,   511,   806,  1671,    97,   503,    98,    99,   795,  1208,
    2872,  3742,  3907,  1656,  1209,  3080,  3766,  3869,  3870,  3872,
    3926,  3927,  4017,  4037,  4056,  4057,  4060,   733,   899,   734,
    3414,   735,   736,  2554,  2555,  2956,   737,  3741,   738,  2650,
     892,  1437,   496,   450,   567,   900,  2529,   740,  3598,   919,
     966,   452,   453,   100,   840,   526,  1251,  1252,  1253,  1700,
    1701,   883,  2054,  1702,  1703,  2188,  2183,  3172,  2930,  2922,
     101,   798,  1177,  1213,  1214,  2125,   102,   536,   103,  1201,
    1650,  1651,  2113,  2523,  2114,   104,   822,   105,   779,  1644,
     780,  1179,   781,   782,  1191,  1186,  1194,  1188,  3499,  3346,
    3347,  2101,  1160,   967,   968,  1637,  2096,  2097,  3130,  3349,
    3505,  3506,   106,   134,   458,   591,   957,  1241,   107,   108,
     109,   110,  1244,  1334,  2168,  1335,  1336,  1337,  1771,  1688,
    2486,  1103,  1565,  2849,   600,   983,   975,   124,   125,   126,
     603,   604,   127,   937,   938,  2342,  2744,  3058,  3282,  3283,
    3468,  3603,   977,  3474,  3901,  4014,   978,   979,  2765,  3476,
    3729,  3903,  3990,   980,  2394,  3066,  3604,  3827,   111,   901,
     546,  1332,  1327,  1329,  1767,  2225,   112,   113
};

/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
   STATE-NUM.  */
#define YYPACT_NINF -3442
static const int yypact[] =
{
    4231,  2590,   101,  1377, -3442,  -143,   167, 39404,   106,  1377,
    1377,  -148,  2753, -3442, -3442, -3442, -3442, -3442,  2626, -3442,
   39404,   101, -3442, 21957, -3442, -3442,    96,   812,   196,  1377,
     101, -3442, 39404, -3442,   498,  1140,   101, -3442, -3442,  1377,
   -3442,  -148, 39404, -3442,   588, -3442,  1468,   -49,   543,   523,
     855, -3442, -3442, 39404,  1768,  -152,  1297,   959, -3442, -3442,
     900, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442,
   -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442,
   -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442,
   -3442, -3442, -3442, 22523, -3442, -3442, -3442, -3442, -3442, -3442,
   -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442,
   -3442, -3442, -3442, -3442,  1199, 39404,  1213, 39404, -3442,  1243,
   39404, 33784, 39404,   877,  1248, -3442, -3442,  1363, -3442, -3442,
    1377, -3442, -3442, -3442,  -148, -3442, -3442, 21957, -3442, -3442,
   -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442,
   -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442,
   -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442,
   -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442,
   -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442,
   -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442,
   -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442,
   -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442,
   -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442,
   -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442,
   -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442,
   -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442,
   -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442,
   -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442,
   -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442,
   -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442,
   -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442,
   -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442,
   -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442,
   -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442,
   -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442,
   -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442,
   -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442,
   -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442,
   -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442,
   -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442,
   -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442,
   -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442,
   -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442,
   -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442,
   -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442,
   -3442,   953, -3442, -3442,  1063, -3442, -3442, -3442,  1595,  1458,
   -3442,  1504, 33784, -3442, 39404, -3442, -3442, -3442,   251, -3442,
    1214, -3442,  1284,  1610,  1661,  1675,   733, 11027,  1671,  1671,
    1671, 39404,  1710,  1671,  1671, 39404, -3442,  1671, -3442,  1671,
    1377, -3442, -3442,  4160, 39404,  1515,   471,   -78, 33784,  1263,
   39404, -3442, -3442, 11027, -3442,  1698, 21957, -3442,  1377,  1876,
    1753,   225, 39404, -3442, -3442,  1377,   222,   706, -3442,  4380,
     141, -3442, -3442, -3442,  2686, -3442, -3442,  5440, -3442, -3442,
   -3442,  1384, -3442, -3442, 21957, 39404,  1377,  1694, -3442, -3442,
     216,   216,   216, -3442,   216, -3442,   216, -3442,  -152,  1373,
   -3442, -3442,  1391, 39404,  -126,   491, -3442, -3442,  1376,   573,
   -3442,  1432, 30974, -3442, 39404, -3442, -3442, -3442, -3442,  1639,
   -3442, -3442, -3442,  2213, -3442, 21957, 39404,  1520, -3442, -3442,
   21957, -3442,     7, -3442, -3442,  1414, 39404, -3442, 21957, 21957,
     209,  1176,  1300, 39404, 39404,  1832, -3442,  2001, 30974,  1606,
   -3442,   283,  1032,  1363,  2006, -3442,  1458, -3442, 39404, 39404,
   39404, -3442, -3442, -3442, 35470,   733,  1447,  1452,  1457, 14525,
   -3442,  1464,  1479,  1487, 11027,  1497,  1505,  1508,  1517,  1525,
    1563,  1565,  1570,  1572,  1572,  1577,  1580,  1586,  1597,  1065,
    1605, -3442,  1618,  1628,  1634, -3442, -3442,  1638,  1641,  1653,
   -3442,  1655,  1679,  1681, 11610,  1688,  1697, -3442, 19123,  1701,
    1705,  1714,  1719,  1724,  1726,  1732,  1738,  1744, -3442, -3442,
   11027,  1748, -3442, -3442,  1750, -3442,  1757,  1762,  1764,  1769,
    1772,  1775,  1777,  1780,  1794,  1797,  1800,  1808,  1814,  1818,
    1825,  1827, -3442,  1437,  1839,  1842,  1547,  1848, -3442,  1852,
   -3442,   235,  1856,  1572,  1572,  1572,  1858,  1861,  1863,  1874,
    1881, 14525, 14525, 14525,  8112, -3442, 39404, -3442, 39404,  1501,
    3068, -3442,  2461, 14525,   149, -3442, -3442, -3442, -3442, -3442,
   -3442, -3442,  1492,  1550, -3442, -3442, -3442, -3442, -3442,  1895,
    1574,  1945, 39404, 39404, 39404,  1771, 39404, 39404, 33784,  1637,
   39404, 30974, 21957,  1671,  1527,  2933,  1868,  1700,  1662, -3442,
   -3442, -3442, -3442, -3442,  1860, -3442, -3442,  1756, -3442, -3442,
   -3442,   157, -3442,    82, -3442, -3442, -3442, -3442, -3442, -3442,
    1934,  1751, -3442, -3442,   114, -3442, -3442, 39404, -3442, -3442,
   -3442, -3442,  2081,  2059,  1501,   221,  2451,  2346, 21957, -3442,
    1169, -3442,  -164, -3442, -3442,  2269, -3442, -3442, 30974, 21957,
   -3442, -3442, -3442, 19689, -3442, -3442,  2482, -3442,  1951, -3442,
   21957,  1868, -3442,  2199,  2134,  1176,  2038, -3442, -3442, -3442,
   -3442, -3442, -3442, -3442, -3442, -3442, -3442,  1999,  2686, -3442,
   -3442, -3442,  2427, -3442,  2140,   254,  2077, -3442,  2024,  1346,
     254, 31536,  2364,   198, -3442,   234, -3442,  2449, -3442, -3442,
    2152, -3442, -3442,  2159,  2163,  2366,  2167, -3442, -3442,   315,
    2296, -3442, -3442,   612, -3442,  1062,  2364,   254,   198, -3442,
    2403,  2523,   936,   860, -3442,   -27, -3442, -3442,  2598, -3442,
   -3442, -3442, -3442, -3442, -3442,  2081, -3442, -3442, -3442,  2088,
   -3442,  2335,  2193, -3442, -3442,    40, -3442,  2100,   680,  2540,
   -3442,   619, 32098, -3442, -3442, -3442,  2570,  2586,  1572,  2101,
   -3442, -3442, -3442,  2680, -3442, -3442,  2112,  2596,  2596,  2596,
    2690, -3442, -3442, -3442, -3442, -3442,  2274,  2149, -3442,  1520,
   21957,   852, -3442, 36032, 21957, -3442,  1551, 11027, -3442, -3442,
    3564,   178,   103, -3442,  2653,  2312, -3442, -3442, -3442, -3442,
    2559, -3442, -3442,  2680,  2616,  2596,  2514,  2137, -3442, -3442,
   -3442, -3442, -3442, -3442,  1086, -3442, -3442, -3442, -3442, -3442,
   -3442, -3442,  1491, -3442, -3442, -3442, -3442, -3442,  1520, -3442,
   21957, -3442, -3442, -3442, 21957, -3442,  2139, -3442,  2130, -3442,
   11027, 11027,   342,  2657,  2712,  2712,  2712,  1501,  2168, 11027,
   11027, 11027, 11027, 11027, 11027, 11027,  1014,  2148, -3442, -3442,
    8695, -3442,  2153, 11027, 11027,  2231, 11027,  1550, 11027, 23089,
     694,  4639, 11027,   720,  2609, 11027, 11027, 11027,  8112,  2319,
   11027, 11027, 23089,  2726,  2157, -3442,  2155,  1173, 11027, 11027,
    1272, 11027, 11027, 11027, 11027, 11027, -3442,  8695, -3442, 11027,
   11027, 11027, 11027, 14525, 11027, 11027, 11027, 11027, 11027, 11027,
    2712,  2712, 11027, 11027,  1467,  8695, -3442, 11027,  1550,  2298,
    2298, 11027,  1550,  6946, 11027, -3442, -3442, -3442,  2160, -3442,
   -3442, -3442, 23089,  2712,  2712, 11027, 11027,  2657,  2657,  2657,
   -3442,  8112,   191,  2164, 11027, 24221,  2158, -3442, -3442, -3442,
   -3442, 11027, 11027, 11027, -3442, 14525, -3442, -3442,  2028, -3442,
   -3442, -3442, 12193, 14525, 14525,  2170, 14525, 14525, 14525, 14525,
   14525,  2509, 14525, 14525, 15108, 15691, 14525, 14525, 14525, 14525,
     914,  2657, 33784, 14525, 11027, -3442, -3442, 39404, -3442, -3442,
   -3442,  2173, 21957,  1637, -3442, -3442,   -82,  2614, -3442, -3442,
    2181,    75, 21957,  2183, -3442, -3442, -3442, -3442, -3442, -3442,
    2719, -3442, -3442, -3442,  2210,  2191, -3442, -3442, -3442, -3442,
   -3442, -3442,  2284, -3442, -3442, -3442,  2196, -3442,  2196, -3442,
   -3442,  2196, -3442, -3442,  2196,    72,  3509, -3442, -3442, 39404,
   -3442, 39966, -3442, 19689,  -143, -3442,  2500, -3442, -3442,  2538,
   -3442,  2513,   220,  2211, -3442, 21957, -3442, -3442, -3442,  2438,
     788, 33784, -3442, -3442,   170,  2216,  2291,  2220, -3442,  2297,
   21957, 21957, -3442, -3442, -3442, -3442,   706,    38,  2228,   737,
   -3442, 39404, -3442,  1526, -3442, -3442, -3442,  2232, -3442, 11027,
   -3442,  2235, -3442,  1064,  2595, -3442,  -143, 11027, -3442, -3442,
    2244,  1458, 39404, 39404, 39404, 21957, 39404, 21957, -3442,  1050,
    1050, -3442,  1242, -3442, -3442, -3442, -3442,   254, 39404, 39404,
     254, 30974, -3442, -3442, -3442,  2649,   198, 39404,   254, -3442,
    2599,  2336, -3442, -3442, -3442,  2664, -3442, -3442,  2658,  2248,
   -3442, -3442, -3442,   198, -3442, -3442, -3442, 21957, -3442, -3442,
     198, -3442, -3442,   198,   198,   254,   254,  2302, -3442, -3442,
    2250, -3442,  2302,  2382,  -146,   216,  2477, -3442, -3442, -3442,
   -3442, -3442, -3442, -3442, -3442, -3442, -3442,    63, -3442, -3442,
   -3442, -3442, -3442, -3442, -3442,   130, -3442, -3442, -3442,  1829,
    2720, -3442, 33784,  2204,   -95,   842,  2204,   866,  -143,  1461,
   -3442,  1461, -3442,  2814,  2507,   889, 21957, -3442,  2265,  -143,
   21957, -3442, -3442, -3442, -3442, -3442, -3442,  2270, -3442,  2277,
    2279,  1501,  2705,  2713,  2716,  2717,  2718,  2722,  2734,  2737,
    2738,  2750,  2751,  2752,  2757,  2762,  2765,  2766,  2283, -3442,
   -3442, -3442, -3442, -3442, -3442, -3442, -3442,  2373, -3442, -3442,
   -3442, -3442,  2083, -3442, -3442, -3442,   133,  2027,  2309,  2377,
    2867, 30974,  2740, 39404, 39404,  1458, 39404, 39404, -3442, -3442,
     943,  2584,  2585,  2591,  2347, -3442, -3442, -3442,   798, 39404,
    2758, 26478,   123,   323,   802, -3442,  2712,  2358, -3442,  2359,
    2362,  2367, 11027,    65,  1305,   825,  1269,  1100,   872,   325,
     182, -3442,  2368,  2378, -3442,   884, -3442,   354,   363,   902,
     957,  2376, -3442,  2386, -3442, -3442, -3442, -3442, -3442, -3442,
   -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442,
   -3442, -3442, -3442, -3442,  2783, -3442,  1211, -3442, -3442, -3442,
   -3442,  2381, -3442, -3442,   961,   377,   408,   266,  2394,   420,
    1469,  1481,  2389, 23089, 39404,  2712,  2391,   966,   978,  2712,
    2392,   426,   990,  1512,  1535,  1537,   994,   996,  1027,   434,
    1560,  2066,  1039,   453,   509,   584,   609,  1048,  2400,  2402,
     621,   296,  2712,  2408,  1056,   298, -3442,  2388, -3442,  2411,
    1066,  9278,  9861, 10444,   300,   670, -3442,  2409, -3442,  2155,
    2417,  2419,   305,  1077, -3442,  -152, -3442, 11027, -3442,   166,
     856, -3442,  2561, 39404,  2086,   159, -3442, -3442, -3442, -3442,
   -3442, -3442,   633, -3442,  2423, -3442,  2424,  1840,  2429,  8112,
     806,  2429,  2819,   898,   898, 14525,  2782,  2796, 11610,   713,
   11610,   713,  2429,  2429,  2429, -3442, 14525,  2428, 14525, 14525,
   -3442,  2657,  1501,  2430,  1218, 39404, -3442,   -82, -3442, -3442,
   -3442, -3442,   418, 30974, -3442, -3442, -3442,    75, 33784,  2431,
   -3442, -3442,  2623,  2933, 21957, -3442, 39404, -3442, -3442, -3442,
   -3442, 20255, 20255, -3442, 20255, -3442, -3442,   145,   297,  3525,
    2453, -3442, -3442, -3442, -3442, -3442,  2810, 21957, -3442,   -30,
   21957,  2265,  2442,  2442,  1034,  2541, -3442,  2445, -3442, 11027,
    -143, -3442, 30974, 30974, 21957, 21957,   539, -3442,  1433, -3442,
    -143,  2842, 20255, 20255, 20255, -3442, -3442, -3442, -3442, -3442,
     988, -3442,  1501, -3442,  2441, -3442, -3442, -3442, -3442, -3442,
   36594,   136, -3442, -3442,  -143,  2854, -3442,  1501,  2459, 39404,
   -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442,
   -3442, -3442, -3442, -3442, -3442,   560, -3442, -3442, -3442, -3442,
   -3442, -3442,  2592,   254, -3442, -3442, -3442, -3442, -3442,  2662,
    2364,  2296,   254,   198, 21957,   254,   254, -3442, -3442,  1731,
   -3442,   -27, -3442, -3442, -3442, -3442, 39404,  3073,  2608, -3442,
    2467, -3442, -3442, 21957, -3442,  2468, -3442,  2878,  3007,  2364,
   -3442, -3442, -3442,   418,   418,  2743, -3442,  -143,  2600,  2602,
    2606,  2607,  2612,  2628, -3442, -3442,  -143,  -143, -3442, -3442,
     418, -3442,   913, -3442, -3442, -3442, -3442,  -143,  -143,  -143,
    -143,  1654,  -143,  -143,  1583, -3442, -3442,   418,   418, -3442,
    1691, -3442, -3442, -3442, -3442, -3442, -3442, -3442,   233, -3442,
    2773,  2987,  2702,   418,   418,  2987,   418,  2703,  2706,   418,
     418,  2565,  2958,   418,  2850,  2593,  1227,  2856,   418, -3442,
    2604,  2968,   418,   418,   418,   418,  2987,  2731,  3047,   418,
   -3442,   418,  2739,  2742,   172,  2741,  2744,   418,   183, 39404,
     418,   418,   418, -3442, -3442,  4663, -3442, -3442, -3442, -3442,
   -3442, -3442,   -79, 20823, -3442, -3442,   378, -3442,  2704, -3442,
   -3442, -3442, -3442, -3442, 37156, -3442, 11027,  1654,  -143,  -143,
     289,  -143,  1654,  -143,  -143,  -143,  -143,  -143,  1654,  1654,
    -143,  -143,  1654,  3564, -3442, -3442, -3442,   135,   418,   418,
     418,   418, -3442,  1914, -3442, -3442, -3442, -3442, -3442, -3442,
   -3442, -3442, 33784,  2849,  2136,   -34, -3442, 39404, -3442,  1549,
   39404,  2526,   487,  3824,   169,   169, -3442, 21957, 21957, 21957,
   39404,  2566,  2453, 26478, -3442, -3442,  -146, -3442,  2521, -3442,
   12776, -3442,  2530, -3442, 11027, -3442, -3442, -3442,   294, 11027,
   11027,  2972,  1379, -3442, 32660, -3442, -3442, -3442, 11027, 32660,
    1379, 11027, -3442,  2533, -3442,  2897,  2898, -3442, -3442, -3442,
   -3442, 11027, -3442, 11027, 11027, -3442, 11027, 11027, 11027, 11027,
   11027, -3442, -3442, 14525, -3442,  2532,  2542, -3442, -3442, -3442,
    2545, -3442, 11027, -3442, -3442, -3442, -3442, -3442, -3442, -3442,
   11027, -3442, 11027, -3442, 11027, 11027, 11027, 11027, -3442, -3442,
   -3442, 13359, 11027, 11027,  2547, -3442, -3442, -3442, 11027, 11027,
   11027, -3442, 11027,  1440, 11027,  1472, 11027,  1693, 11027, -3442,
   11027, -3442, -3442, -3442, -3442, 11027, -3442, -3442, -3442,  1592,
   -3442,  2543,  2544,  2550, 33784, 11027, -3442, -3442, -3442, -3442,
   -3442,   694, 14525,   317,  2548, 14525, -3442,  2819,  2319,  2319,
    1873,  8112,   806,  2819, 11027,  2554,  2539, -3442, 11027, 39404,
   -3442, -3442, -3442, -3442, -3442, -3442, 33784, -3442, -3442, -3442,
    2183,  2899, -3442,  2265, -3442, -3442,  1615, -3442,  2568, -3442,
    2571,  2643,  2648,  2651, -3442, -3442, -3442, -3442, -3442, -3442,
   -3442, -3442, -3442, -3442, -3442, -3442,  2364,  1433,  2663,  2587,
   -3442, -3442,  2613,  2914, -3442, -3442, -3442, -3442, -3442, -3442,
   -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442,  3121,
    2601,  2442, 39404,  1501, -3442,  2660, -3442, -3442, -3442, -3442,
   -3442, -3442, -3442, -3442,    78, -3442, -3442,  2603,  2603, 17989,
   -3442, -3442, -3442, -3442,  2828,  2996,  2997,  3002,   619, -3442,
     286, -3442,   156,  2959,  2364, -3442,  3006, 34346, 27040, -3442,
    2605,  2961,  2611,   418, 29288,   944, 24786, 29850, -3442, -3442,
     289, -3442,    71, -3442,  1242,  1242,  2631, -3442,  2862, -3442,
   -3442, -3442,  2453,   198, -3442, -3442, -3442,  2615, -3442, -3442,
     735,  2965,  2970, -3442,  2852,  1133,  2852,   735,   735, 23089,
    -146,  1964, -3442,  1654,  2906, -3442, -3442, -3442, 33222, 30412,
   -3442, -3442, -3442, -3442,  3106, -3442,  3107,  1190, -3442, -3442,
    1715,   842, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442,
   -3442, -3442, -3442, -3442, -3442, -3442, -3442,   866,  1715,  1715,
    1461, -3442,   121, -3442, -3442, -3442, -3442, -3442, 23655,   101,
   -3442,   189,   244, 23655, -3442,  1551,  1551, -3442, 23655,   101,
     289,  1654, 23655,  1654, 37718,   101,  -143,  -143,  2074,   418,
    1654, -3442, -3442,  2978, 39404,  2980, 23655, 23655, -3442, 33784,
   -3442,   418,  1112,  1654,   289,   289, 23655,   101, 23089,  2195,
    1876,  -143,   101, -3442, -3442, -3442, -3442, 21957,   101,   101,
    2361, -3442, -3442, -3442,  1654, 33784,  2640, -3442,  5707, -3442,
   -3442, -3442, 17423, 39404,   269,   150, -3442,  2633,  1275,  1008,
    2714,  1720,  2642, -3442,  2647, -3442,  2650, -3442,  1501, -3442,
   -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442,
   -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442,
   -3442,  -143,  1034,  1715,  1715,  2027, -3442,  2888,  3044,   418,
   -3442,  1901, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442,
   -3442,  2735, -3442,  2817,  2655, -3442, -3442,    76, -3442, -3442,
    1216, 21957, 16857, -3442,  2876, -3442,  2594, -3442, -3442, -3442,
   -3442, -3442, -3442, -3442, -3442, -3442,  2654,  -146,  2891,  1378,
    2453,  2666,   123, 11610,  1118, -3442,  1501, 11027,  1501,  1707,
   -3442,  2670,  2670, -3442, -3442,  2671,  2670,  3023, -3442,  3025,
    2672, -3442,  2673, -3442,  1146,  2674,  2675,  1492, -3442, 11027,
   11027,  1152,  1164,   -73,   697,   750,   327, -3442,  1168,  2764,
   -3442, -3442,  1184,  1189,  1195,  1224,   761,  1237,  1630, 11610,
    1314,   827,   329, -3442,  1372,   770,   783,  1407, 11027,  1438,
   11027,  1476, 11027,  1489,  1494,  1514, -3442, -3442, -3442, -3442,
   -3442, -3442,  2676,  1501,  2678, -3442, -3442, 11027, -3442,   149,
   -3442, -3442, 14525,   361,  2685, -3442,  1501, -3442, -3442,  2689,
    1492, -3442, -3442, -3442, -3442, -3442, -3442, 39404,  2677, 27602,
   30974, 30974, 30974,  2681, 11027, -3442, -3442,  2930, -3442, -3442,
   21957,  3065, -3442, -3442, 14525,  3029,  2912, -3442, -3442,  2696,
    2697, -3442, -3442, 30974, -3442,  2686, 23089, -3442,  2698, -3442,
    2698,   675,  2700,  1646, -3442, -3442, -3442,  2694,  2038,  3102,
   30974, 30974, 30974, -3442,  2453,  2453,   753,  2747,  3063, -3442,
   -3442, -3442, -3442, 38280, -3442, -3442, -3442, -3442,  1286, 39404,
    3045, 39404,  7529, -3442, -3442,  3220, 11027, 30974,   731,   856,
     418, -3442, -3442, -3442, -3442, -3442, -3442,  2364, -3442, -3442,
   -3442, -3442,  3022, -3442, -3442,   254,  1731,  -166, -3442,  1117,
   -3442, -3442, -3442,  3066,   735,  2852,  2852,  3067,  2956,   -11,
    2728, -3442,   418, -3442, -3442, -3442,  2686, -3442, -3442, 11027,
   -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442,
   -3442, -3442, -3442, -3442, -3442, -3442, -3442,   233, -3442, -3442,
   -3442, -3442, 11027,  3069,  3075,  1551, -3442, 23655, -3442, -3442,
   -3442, -3442, 23655, 23655,   422, 37718, -3442, -3442, -3442, -3442,
   -3442, -3442,  2729, -3442, -3442,  1034, -3442, -3442, 30412,  -143,
   -3442, 23655,  2729, -3442, -3442,   318, -3442,  -143, -3442, -3442,
   -3442, -3442, -3442, -3442, -3442, -3442, 37718,  2736, -3442,  1542,
   -3442, -3442, -3442, -3442, 37718, -3442, -3442, 37718, -3442, -3442,
   -3442, -3442, -3442, -3442, -3442, -3442, -3442, 21957,  2329,  1521,
   -3442,  1650, -3442, -3442, -3442, -3442, 39404, -3442, -3442, 21957,
   -3442, -3442,  5197, 39404,  2927, -3442, 11027, 11027,  2962, 39404,
    2963, -3442,  3230, 39404,  3294, -3442, 37156, -3442, -3442, -3442,
   -3442, -3442,  2745, 39404,  1715,  2136, -3442, -3442,  1216, -3442,
   -3442, -3442, -3442,  2979,  2982, 39404, -3442, -3442, -3442, -3442,
    2864, -3442, 21957,  3273, -3442,  2889,  1668,   142,  4548, -3442,
    2746,  2748,  2749, 26478,  2453,  3076, -3442, -3442, -3442,  2319,
   -3442,  1501, 11027,   214, -3442, -3442,   374,   787, -3442, -3442,
   -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442,  2767,
    2319,  2319, -3442, -3442,  2890, -3442, 11027, 11027, -3442, 11027,
   -3442,   223,  2768,  2769, -3442, -3442, -3442, -3442, 11027, -3442,
   -3442,  2319, -3442, 11027, -3442, -3442, 11027, -3442, 11027, 11027,
   -3442,  1532, -3442,  1534, -3442,  1567, -3442, -3442, -3442, -3442,
    2770, 39404, -3442, -3442,  1684, -3442, -3442, 11027, -3442, 34346,
   -3442, -3442, -3442, -3442, -3442,   570,   570,   570, 13942,  1501,
    3190, -3442,   808, -3442,  3088, -3442, -3442,  2819,  1546, -3442,
    1733, -3442, -3442, 39404, -3442,  1999,  2779, -3442,   418, 13942,
    2603,  2889, -3442, -3442,   675, 23089, 27040, -3442, 30974,  2137,
    2137,  2137,  2364,  3144,  2663,  2663, -3442, 25351, -3442, -3442,
    2892, -3442, -3442, 28164, -3442,  1226, -3442, -3442, 14525,  1618,
   -3442,  1501, -3442, 33222, -3442,  1501,   418,  2772,  2784, -3442,
   -3442, 38842, 11027, -3442,  3200, -3442, -3442,  2781,  -146, -3442,
     735, -3442,  3117,  3120,   735, -3442, -3442, -3442, 23089,  2453,
   13942, -3442,   213,  1999,  1501,  2786,  1542, -3442,   470,  1501,
   23655, -3442, -3442, -3442,  2785, -3442, -3442,  3250,  3262, -3442,
   23655,  2083, 39404, -3442,  3220, -3442, -3442, -3442, -3442,  5197,
   -3442, 23089, -3442, -3442, -3442, -3442, 39404, -3442,  2795, -3442,
   17423, -3442, -3442, -3442,  2670,  2670,  2670, -3442, -3442, -3442,
   -3442, -3442,  2671,  3009, -3442,  2671,  2671, -3442, -3442, -3442,
   -3442, -3442,   374,   304, -3442, -3442,   374, -3442, -3442, -3442,
     112,  1403,  2671, -3442, -3442, -3442, -3442, -3442, -3442, -3442,
    2670,  2670, -3442, -3442, -3442,   374,  2670, -3442,  2670,  2463,
   -3442,  1544,   116,  2670,  2670,  2670,  2799,  2792, -3442,  1501,
    2319,  3306, -3442, -3442,  2934,  -143,  3255, -3442,  1741, -3442,
   -3442,   866, -3442, -3442, -3442,  2932,   845, -3442,  2975,  2808,
    2822, -3442, -3442,  -143,  2824,  2826,  4663, -3442, -3442, -3442,
    3389, -3442, 39404, 39404, 39404,  2521, -3442,  1242, -3442,  1208,
    1501,  2829,  2830,  2831,  2832,  3375,   138, -3442,  3375, 32660,
   -3442,  1759, -3442,  2833,  2834,   216,  2837,  1582,   800,  1783,
    3116,  3186, -3442,  3040, -3442,  1602,  1264,  1623,  1625,  1648,
    1658, -3442, -3442, -3442, -3442, -3442, -3442,  1788, -3442,  1383,
    2865,  2865,  2865,  1618,  1501,  1804, -3442, -3442,  3203, -3442,
    2847,  2851,  2855, 39404, -3442,  2912, -3442,  2232, 23089, 13942,
    2848,  2857, -3442,   680, -3442, -3442,  2844,  2137, -3442,  3383,
    3242, -3442, -3442, 33784,  2858, -3442, -3442,  3135, -3442,   113,
    3055, -3442, -3442, -3442,   731,  2944,  2945,   418,  1501,  -143,
    3553,  2467,  2014,  2904,   735,   735,  2501,  2905, 11027, 11027,
    2869, -3442,  2891, -3442, -3442,   281,  2232, 11027, -3442,  1034,
    2912, -3442,  2870,  2871, 39404,  2872,  2873, -3442,  3484,   269,
   -3442, -3442, -3442,  2463,   101, -3442, -3442,  2729,    78, -3442,
   -3442,   -36, -3442, -3442, -3442,  1177, -3442,  2874,  1177,  1177,
   -3442,  2140, -3442,  2903,   374, -3442, -3442,  2908, -3442, -3442,
   -3442,  1177,  2877,   374, -3442, -3442, -3442,  1177, -3442, 33784,
    -143,  2942, -3442,  2920, -3442,  3348,  3229, -3442,  2463, -3442,
    3231,  3134, -3442,   374, -3442, -3442,  3375, -3442,   374,  3375,
    1177,  3137, -3442,  1177, 39404, -3442, -3442, -3442, -3442, -3442,
   -3442, 39404, -3442,   864,  1871,  -143, -3442, -3442, -3442,  2895,
    2907, -3442, -3442, -3442,  1008, -3442, 39404,  5197, -3442, -3442,
   -3442,  2876, -3442,   941,  1882,  1542,  2900,  1886,  1889, -3442,
   -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, 32660, -3442,
   -3442,  3375,  3138, -3442, -3442, -3442, -3442, -3442, 11027, -3442,
   -3442,  3168,  3315, -3442, -3442, -3442, -3442, -3442, -3442, -3442,
    2991,  2992, -3442, -3442,  2999, -3442, -3442,   102,  1970, -3442,
   -3442, -3442, -3442, 13942,  3244,  2985, -3442, -3442, -3442, 39404,
    2935, -3442, -3442,   155, -3442, -3442, -3442, -3442, 11027, -3442,
    2891,  2074, -3442, 25351, -3442, -3442, -3442, -3442, -3442,  2919,
    2921,  7529,  3478, -3442, -3442,  2964, -3442, -3442, -3442,  2977,
    1501,  1501, 39404,  3076, -3442, -3442,  1551,  1551, -3442,   281,
     155,  1542, -3442,  1898, 39404, 39404,  1900, 39404, 39404,   979,
     979,   979,  1135,  1135, -3442, -3442, -3442, -3442, -3442,  3284,
   -3442,   832,   203, 39404, -3442, -3442,  1122, -3442, -3442, -3442,
   -3442, -3442,  1177, -3442,   216, -3442, -3442, -3442, -3442, -3442,
     216, -3442, -3442, -3442, -3442,  1572, -3442, -3442,  3180,  2984,
   -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442,  2947,
   -3442, -3442,  3041, -3442, 45024, -3442, -3442,  -152,  2983, -3442,
   -3442, -3442,  1367, 39404, 21957,  2962,  3101, -3442, -3442,   680,
     142,  2889, -3442,   744, 39404, -3442,  3211,   250,  3317, -3442,
   -3442,  2966,  1667, -3442, -3442, -3442, -3442, -3442, -3442,   217,
    3209,  1654,  1654,  1654,  1654,  1970, -3442, -3442,  3017, 21957,
   14525,  3077,  1905, -3442, -3442,  1365,  2332, -3442,   156, -3442,
    1110,  1542, 11027,  2364, 30412, -3442, -3442, -3442, -3442, -3442,
    3287, 11027,  2981, 11027,  2986,  1909, -3442, -3442,  3387,  3387,
   -3442, -3442, -3442, -3442,  1916,  1921,   744,  1961,  1966, -3442,
   -3442,   269,  2993, -3442, -3442, -3442,   799,   799,  1982, -3442,
   -3442, -3442,  1984, -3442,  1990, -3442,  1572, -3442, 11027,  3421,
    3005, 39404,   954, -3442, 46148, 46148, 39404, -3442, -3442, -3442,
   -3442,  4815, -3442, -3442,   776, -3442, -3442, -3442, -3442, -3442,
   -3442, -3442, -3442, -3442, -3442, -3442,  3533, -3442,  2989, -3442,
   -3442,  2990,  1068, -3442, -3442, -3442,  5197,  3394,  1720, -3442,
   -3442, -3442, -3442,  2994,  2038,   418, -3442,   744, -3442, -3442,
   -3442,  1542,  2995,  3223, -3442,   250, -3442, -3442, -3442,  3317,
   -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442,
   -3442, 23089, -3442, -3442,  1034, -3442, -3442, 39404,  3000,  3080,
     418,  3460,  3461,   418,   418,   418,   418,  3010,  2332, -3442,
    3447, -3442,   164, 11027, -3442, -3442,  1501,  3217, -3442,  3535,
    3467,  1501, 39404,  1501, 39404, -3442, 39404,  1095, -3442, -3442,
    3219,   744, -3442,   250,  3317, -3442,  2912, -3442,  3609, -3442,
     140, -3442, -3442,  1122, 39404,   374,   216,   374, -3442,  1501,
   11027, -3442, 11027,  3060, -3442, -3442,  3443, 39404, -3442, -3442,
   -3442, -3442, 11027, -3442, 45024, 45024, -3442, -3442, -3442, -3442,
    3589,   680,  3560,  3279,  3562,  3354, -3442, -3442,  3230,  5197,
   -3442, -3442,  1654, -3442, -3442, -3442,   850, -3442, -3442,  3042,
   -3442,   418,  2074,  3046, -3442,  3077, -3442, 14525,   -57,  -143,
     418,   418,  1354,  1354,  1034, 33784,  3142, -3442, -3442,   418,
   -3442, -3442,  1542, 39404, -3442,   814,  3380,   289,  2003,  2005,
   -3442,  3582, -3442,  3583,  3051,  3052, -3442, -3442, -3442, -3442,
    2011, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442,  1501,
    1501, -3442,    66, -3442, -3442,  3413,  3496, 11027,  1501, 42214,
    3054, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442,
   -3442, -3442, -3442, -3442, 45586, 11027, -3442,   776,  3533, -3442,
    3295, -3442,  3299, -3442, -3442, -3442,  3516, 45024, -3442,  3515,
   -3442,   680, -3442, -3442, 23089, 13942, -3442, -3442, -3442,  2015,
   -3442, -3442,  2819, -3442, 16274, -3442, -3442, -3442, -3442,  -143,
    -143, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442,
    2025, -3442, 33784, -3442, -3442,  3599,  3601,  3510,  3603,   814,
   -3442,  1098, -3442,  3634, -3442, -3442, -3442, -3442, 37156, 37156,
   -3442,  3095, 11027, 45024, -3442,  3514, -3442,  3450,  1778,  3395,
    3070, -3442,  3071,  1799,  3547, 46148, 46148, -3442, -3442, -3442,
   -3442,  3527, -3442, -3442, -3442, -3442, -3442,  3535, -3442, 14525,
    3083,  3084, -3442, -3442, 33784, -3442,  3142, -3442,  3087,   216,
     216,  3622,   216, -3442,  3625,  3626,  1098, -3442,  3404,  3096,
    2047, -3442,   131, -3442,  1501, 42776,  3623, 39404, -3442, -3442,
   -3442, -3442, 11027, -3442, 34908, 43338,  3097, -3442, -3442, -3442,
    3256, -3442,  3354,  3380, -3442, -3442, -3442,  2332, -3442, -3442,
    3103, -3442, -3442,   216, -3442,   216,   216, -3442,  3539, -3442,
   -3442, 11027, -3442,  3546,  3185, -3442,  3108, -3442, 45024,  1430,
   45024, -3442, -3442,  3499,  3110,  1611, -3442,  3111, -3442, -3442,
   45024,  3487, -3442, 11027,  3115,  3118, -3442, -3442, -3442, -3442,
    1654,  1501,  3645, 45024, 39404, 40528,  3296, 43900,  3529, 39404,
    5197,  3531,  3534, -3442, 45024, -3442,  3374,  3128,  1501, -3442,
   -3442, -3442,  3207, -3442, 41090, -3442,  2415, -3442,  3150, -3442,
   -3442,  3598,  1633, -3442, -3442,  3464, 18555,  3275, -3442, -3442,
   45024, 45024, -3442, -3442, -3442, 28726, 11027, -3442,  3166, -3442,
   -3442, -3442,   619, -3442, -3442, 33784,  2049, -3442, -3442, 23089,
   -3442, 41652, 44462, -3442, -3442, -3442, 25916, -3442, -3442, -3442,
    3542, -3442,  1501, -3442,  1550, -3442, -3442, -3442, 21389,  3042,
   28726, -3442, -3442, -3442, -3442, -3442
};

/* YYPGOTO[NTERM-NUM].  */
static const yytype_int16 yypgoto[] =
{
   -3442, -3442, -3442, -3442, -3442,   137, -3442, -3442, -3442, -3442,
   -3442, -3442, -3442, -3442,  1626, -3442, -3442, -3442, -3442, -3442,
    1816, -1667, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442,
     659,  1465,  3124, -3442,   429, -3442,   119, -3442, -3442, -3442,
   -2627,     0,  -172, -3442, -3442,   357,     4,  2806,  -171, -3441,
   -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442,   441,
     438, -3442, -3442,   263, -3442, -3442, -2150, -3442, -3442, -3442,
   -3442, -3442, -3442, -3442, -3442,  -344,  -295, -3442, -3442, -3442,
   -3442, -1020,   276, -3442,   277, -3442,   278, -3442,   282, -3442,
     285,   287,   288,   291, -3442,   293, -3442, -3442,  -297, -3442,
   -3442, -3442, -3442,   295, -3442, -3442, -3442, -3442, -3442, -3442,
   -3442,  -185, -3442, -3442,   -42, -3442, -3442,  -170,   301, -3442,
    -130,   303, -3442,   307, -3442,   -50, -3442,   -48, -3442, -3442,
   -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442,
    2807, -3442, -3442, -3442, -2035, -3442, -3442, -2080,  2412, -3442,
   -1606, -3442, -3442, -1722, -3442, -3442, -1609,  -562, -3442, -3442,
    1236,   515, -3442, -1295, -1698, -1687, -3442, -3442, -3442, -1815,
   -1791,  -727,  2161, -1099, -2025, -3442, -3442, -3442,   299, -3442,
   -3442, -2321,  2413, -3442, -3442, -3442,  1470, -3442, -3442, -3442,
   -3442,  1239, -3442, -3442,   892, -1486, -3442, -3442, -3442, -3442,
   -3442, -3442,   134,   267,    41, -3442, -3040,   638, -3442, -3442,
   -3442, -3442, -3442, -3442, -3442,  -124,   -55, -3442, -3442,  -129,
   -3442, -3442,  -167, -3442,   139, -2112, -3442, -3442, -3442, -3442,
    2375, -1229, -3442,  3320, -3442,  -499,   718,  1930, -1989, -1288,
    -845,  -824, -2259, -3442, -3442, -3442,   396,  1043,  1400,   813,
    1931, -1733,  1471,  1538, -3442, -3442,   838, -3442, -2906, -3442,
   -3442, -3442,   797, -3442,   803, -3442, -3442, -3442,  -916,   765,
   -1542, -3442,   380, -2168, -2270, -3442,   600, -3442,   559, -3442,
    -520, -1910, -2171,    77, -3442, -3442,   569,   847,   899, -3442,
   -2862, -1068, -3442, -3442,   143, -3442, -3442, -3442,   132, -3442,
     398,   290, -3442, -3442,  -920, -2028, -3442, -3442,  3814,  3822,
    -956, -1713, -3161,   162,   158, -3442, -3442, -3442,  2418,  -724,
     236,   227,   226,  1917,  -473,   370, -2048, -3442,   417, -3442,
   -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442,
   -3442, -3442, -3442, -3442, -3442,  1988,  -993, -3442, -3442, -3442,
   -3442, -3442, -3442, -3442, -2182,   890, -3442, -3442,  1533, -3442,
   -3442, -3442, -1681,   206, -1564, -2761, -3442, -3442, -3442, -3442,
   -3442, -3442,  1209, -3442, -3442,  2113,  2546, -3442, -3442, -3442,
   -3442, -3442, -3442, -3442, -3442, -3442, -3442,   645,  1711, -3442,
   -3442, -3442, -3442, -3442, -3442,   895,  2457, -3442, -3442, -3442,
      12, -3442, -3442, -3442, -3442,  2200, -3442, -3442,  2926, -3442,
   -3442, -3442, -3442,  1343,  1754, -3442, -3442, -3442,  -908,  1708,
    -544, -1526, -3442,  3330, -3442, -3442, -3442, -1510, -2187, -3442,
    3048,   360, -2528,  2190,  -584, -2465, -3442,  1021,  -626,  3130,
   -3442, -1072, -1039, -3442, -3442,  -587, -3442, -3442, -3442,  -585,
   -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442,
   -3442,  1380, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442,
   -3442, -3442,  1552, -3442,  1922, -3442,  -458, -3442,  2843, -3442,
   -3442, -3442, -2081, -1758,  1673,   949, -3442, -3442, -3442, -3442,
   -3442, -3442, -3442, -3442, -3442, -2137, -3442, -3442, -3442, -3442,
   -3442, -3442, -1579, -3442, -1702,   352, -3442,   496, -3442, -3442,
   -3442, -3442, -3442, -3442, -3442,    19,  1153,    21, -1691, -1009,
    2821,  1528, -3442, -3442, -1189,  2894, -1873, -3442, -3442, -3442,
    1833, -3442, -3442, -3442, -3442, -3442,   923, -2342, -1276, -3442,
   -3442, -2839,  -837, -2072,  -821, -3442, -2090,   513, -1731, -1644,
   -2141,   160, -1119, -3442, -3442, -3442, -3442, -3442,  -112, -3442,
   -3442, -3442,   538,  1739, -3442, -3442, -3442, -3442, -3442, -3442,
   -3442, -3442,  -446,  -411, -3442,  1974,  2272, -3442, -3442, -3442,
   -3442, -3442, -3442, -3442, -3442, -3442,  2715,  2684,  1802, -3442,
   -3442, -2106, -3442, -3442,  1758, -3442,   772, -2132, -1621,  1031,
   -3442, -3442,  1036, -2847, -3442, -3442, -3442, -3442, -3442, -3442,
     975,  -133,    94,  3392, -3442, -3442, -3442, -3442, -3442, -3442,
   -3442,  2492,  -977,  3318, -3442, -3442, -3442, -3442, -3442,  2194,
   -3442, -3442, -3442, -3442, -3442,  2668,  3405,  -525, -1167, -3442,
    -689, -3442, -3442,  -776, -3442, -3442, -3442, -3442, -3442, -3442,
   -3442, -3442, -3442,  2301, -3442,  1225, -3442, -3442, -3442,  2707,
   -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442,
   -3442, -3442, -3442, -3442, -3442,  1069,    37, -3442,    79,    -8,
   -3442,    23, -3442, -3442, -3442,  -131, -3442,  -629,  -906, -1244,
     699, -2129,  -765,  1057,  2708, -2986,  -510, -1060, -1063, -1817,
      83, -3442, -3442,  2472,     9,  -732,  -243,    -7, -2199,  -109,
    -535, -3442, -1633, -3442, -3442, -3442, -3442,  2256, -3442, -3442,
   -3442, -3442,  1366, -3442, -3442, -3442,  1025, -3442,   784,   578,
   -3442, -3442,  2357, -3442,  2303, -3442, -3442, -3442, -3442, -3442,
   -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442,  2723,
    3445,  3145, -3442,  2774, -3442, -3442, -3442, -3442, -3442,   466,
   -3442,   306, -3442,  -497,  2551,   767, -3442,  1451,  -199,  -456,
   -3442,   464, -3442, -3442,  1313,  3453,  3149, -3442, -3442, -3442,
   -3442, -3442, -2490,  -811, -3442, -2545, -3442, -3442, -3442, -3442,
    1927,  -958,  2879,  1490, -3442, -3442, -3442,    45,  3508,  3512,
   -3442, -3442,  -141, -3442,   530, -3442, -3442, -3442, -3442, -3442,
   -3442, -3442,  3376, -3442, -3442, -3442, -3442,  3379, -3442, -3442,
   -3442, -3442, -3442,  3381, -3442, -3442, -3442, -3442, -3442,  1915,
   -3442, -3442, -3442, -3442, -3442, -3442, -3442, -3442
};

/* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
   positive, shift that token.  If negative, reduce the rule which
   number is the opposite.  If zero, do what YYDEFACT says.
   If YYTABLE_NINF, syntax error.  */
#define YYTABLE_NINF -2325
static const yytype_int16 yytable[] =
{
     451,  1145,   881,  1340,   907,   960,  1342,   877,  1019,  1021,
    1027,   449,   569,   491,   136,  1245,   497,   974,   982,   732,
    2136,  1442,  1156,  1659,  1531,   510,  1377,   920,  1726,  1558,
    1508,  1274,  1557,   492,  1003,   521,  1432,  1433,  2047,  1305,
    2686,  2859,   508,  1577,  2525,  1058,   538,  2552,   515,  2596,
    1585,  2582,  2586,  2588,  2442,  1274,  2336,  1621,  2634,  2445,
    1794,  1769,  2937,  2088,  1078,  1076,  2716,  1082,  2897,  2418,
    2253,  1347,  1473,  3213,  1268,  1865,  2785,  1089,  1090,  1091,
    2618,  2775,  2206,  2777,  1587,  1588,   558,  2270,  1591,  1592,
    1593,  1594,  1348,  1596,  1597,  1599,  1601,  1602,  1603,  1604,
    1605,  1306,  2571,  3193,  2600,  2601,   495,   990,   561,  2387,
     451,  3052,  2682,   451,   568,   574,  1772,  3198,  3498,  1733,
    2265,   563,  1915,   891,   565,  1624,  1097,  1098,  1099,  2609,
     558,  2266,  1197,  2388,   941,  1140,  1742,  2619,  1141,  2666,
    2278,  1197,   951,   952,  2282,  1807,  1745,  1746,  1045,  3265,
    3230,  3235,  2228,  2229,  3236,  2297,  2349,   590,  3316,  1404,
    3403,  2359,  2796,  2693,  2694,  2306,  2801,  2365,  2366,  2240,
    3237,  2369,   578,  3245,  1107,  1108,   557,  2129,  1192,  3264,
    2173,  1107,  1108,  2242,  3375,  2222,  2258,  2259,  2420,  1307,
    2314,  2376,  2760,   843,   844,   843,   844,  1107,  1108,  1669,
    1959,  3883,  2280,  2281,  2261,  2283,  1107,  1108,  2286,  2287,
    2652,  3401,  2290,  1680,  2407,  1142,  1159,  2299,  2598,  1189,
     584,  2302,  2303,  2304,  2305,  2660,  2384,  2648,  2309,   943,
    2311,  3843,  2122,  2644,  2645,  2149,  2320,  2385,  1197,  2324,
    2325,  2326,  1344, -2229,  3421,  1344,  1618,  1344,  2663,  2652,
    1641,   896,  3782,  1949,  3760, -1348,  1796,  1807,   803,  1198,
    1405, -1765,   114,   953,  1406,  3110,  3883,  2800,  1198,  1330,
    1085,  -776,  1768,  1226,  -482,  1407,  -483,  2726,  3340,   547,
    1850,  1107,  1108,  -398,  3824,  1754, -2163,  2371,  2372,  2373,
    2374,  2761,  1351,   970,   504,  1145,  1786,  1205, -1348,  1279,
    3422,  2756,  3365,  2215,  2652, -1640,  1161,  2321,  1272,  1107,
    1108,  1107,  1108,  1107,  1108,  1107,  1108,  2315,  1921,  3556,
    1107,  1108,  1853,  3091,  3095,  2946,  2391,   605,  2567,  2604,
    2170,  1790,  1107,  1108,   135,  1401,   811,  3096,  1107,  1108,
    1107,  1108,  1107,  1108,  1107,  1108,  1145,  3077,  2749,  2750,
    1145,  3097,   128,   595,  1445,   135,  2123,  3147,  2885,  2408,
    2653,   843,  3231,  1243,   116,  1198,  1360,  1361,  1624,  1107,
    1108,  1318,  3437,  1275,  1237,   137,  1107,  1108,  1107,  1108,
    1287,  3441,  3521, -1306,   454,  3682,  1422,  1423,  1424,   788,
   -2163,  3478,  1107,  1108,  3095,  1408,  1206,   519,  2352,   530,
    1272,  3454,  1232,  1419,   505,  1808,  3456,  3096,  1768,   897,
    2568,  3140,  2565,   457, -2284,  -563,  2564,  2779, -1306,  1765,
    1276,  3097,  1221,  1107,  1108,  3196,  1617,   548,  1086,  1787,
     129,   843,   844,  1755,  2727,  1107,  1108,  1756, -2164,  2953,
    1319,  1107,  1108,  1790,  3341,  2892,  1642,  2184,  3416,  1107,
    1108,  3394,  2338, -1640,  1331,   568,  2353,   574,  2932,   500,
    2150,  2664,   531,   989,  2392,  2668,  3485,  1446,  1107,  1108,
    3783,  2022,  1619,  3092,   745,  2038,  2322,  2941,   574,  2684,
    2685,  3615, -1348,  1207,   812,  1409,  3395,   783,  1625,  2695,
    2950,   568,  2627,   793,  1368,  1143,  2185,  1794,  1256,   558,
    1347,  1727,  2328,   804,  1730,   807,  3507,  2974,  1144,   787,
    1109,  3824,  1735,  1110,  2617,  2336,  1770,  1808,  1621,  1471,
    3777,  1348,  3844,  2264,  1107,  1108,  1109,   558,   893,  1110,
    2947,  1582,  1045,  2124,   785,  1109,   954,  3111,  1110,  1747,
    1748,  1590, -2164,  3423,  2729,  3093,   910,  2787,  2354,  3078,
    2667,  2967,  2669,  1456,  1457,   568,  2067,   924,  1611,  2680,
    1402,  2654,  3542,  2083,  2265,  1643,  2387,  2070,   558,   451,
    2073,  1347,  2692,   558,  1496,  2266,  2202,  1865,  2701,   949,
     935,   558,   558,  1510,  3761,  2336,   961,   924,   944,   797,
    2388,   568,  1348,  2715,  2409,  1523,  1524,  1525,   599,  1107,
    1108,   991,   992,   993,  1530,  1190, -1348,   998,  3367,  2963,
    1109,  2762,  2957,  1110,  2965,  2966,  -563,  2151,  1915,  1370,
    2355,  1744,  1960,  3791,  1107,  1108,  2599,  2962,  1795,  2383,
    2608,  2064,  2642,  2976,  3376,  1193,  1107,  1108,  1109,  1155,
    1109,  1110,  1109,  1110,  1109,  1110,  3780,  1110,   988,  1109,
     824,  1046,  1110,  2751,  2646,  2538,  1370,   971,   934,  2784,
    3238,  1109, -2229,  3075,  1110,  3317,  2572,  1109,  2679,  1109,
    1110,  1109,  1110,  1109,  1110,  3064,  1110,  3762,  1772,  1670,
    2687,  2316,  3665,  2384,  1370,  1107,  1108, -2229,  3931,   506,
    1920,  2902,  2903,  1796,  2385,  2793,  2149,  3344,  1109, -1348,
    3726,  1110,  2647, -2163, -1348,  1109,  1280,  1109,  1110,  1104,
    1110,  1106,  1107,  1108,   898,  -776,  1627,  1754,  -482,  2655,
    -483,  1109,  2186,  1969,  1110,  1111,  3224,  -398,  2748,  3063,
   -2163,  1625,  1111,  1087,  3094,  1149,   451,  1151,  3557,   924,
     451,   568,  1271,   451,   568,   558,  1731,  1150,  1111,   936,
    2050,  1154,  1109, -1306,  1158,  1110,  3149,  1111,  2754,  1370,
    3243,  3244,  1709,  1970,  1109,  1107,  1108,  1110,  3247,  1661,
    1109,  1566,  1567,  1110,  -563,  3270,  1107,  1108,  1109,  2552,
    1202,  1110,  3734, -1348,  1676,  1107,  1108,  1288,  3154,  3081,
    3685,   558,  1232,  2057,  3174,  2427,   972,  1109,  1107,  1108,
    1110,   568,   558,  3183,  3217,  2339,   558,  3187,  1301,  2356,
    3623,  1223,  1257,   558,  1921,  1107,  1108,  1107,  1108,  1497,
    1232,  3396,  1498,  3830,   598,  2390,  3222,  3223,  3199,  1774,
    3158,  3098,  1111,  3786,  2800,  3788, -2324,  2800,  2800,  1124,
    1107,  1108,  1107,  1108,   568,   751,  1566,  1988,  3609,  3687,
    3393,  3232,  3037,  1109,  2800, -2164,  1110,   786,  2084,  3182,
    1111,  2968,  1111,  3186,  1111,  1755,  1111,   913,  3246,  1756,
     808,  1111,  1142,  3263,  3266,  3268,  3269,  2023,  2027,  2028,
    2039,  1212, -2164,  1111,  2904,  2044,  2045,  1107,  1108,  1111,
     501,  1111,  1229,  1111,  2194,  1111,  3091,  2496,  2497,  1107,
    1108,  3098,  2400,  2199,  1950,  1343,  1968,  2818,  2819,  2835,
    2836,  3086,  3202,  2942,  2943,  1682,  2296,  1107,  1108,  1274,
    1111,  2150, -1641,  3863,   512, -2287,  1930,  1111,  1109,  1111,
     525,  1110,  2227,   558,  3611,  1975,  1373,   558,   611,  2936,
    2387,  2856,  2857,  1111,  1976,  1606,  1794,  2964,  1274,  2265,
    1726,  1726,  3865,  1109,  2459,  2065,  1110,  2197,  1986,  1883,
    2266,  1797,  3866,  2058,  2388,  1109,  2201,  2264,  1110,  2204,
    2205,  2422,  1107,  1108,  1111,  3615,  1107,  1108,  1666,  3129,
    3480,  1107,  1108,   558,   815,  2270,  1111,  1438,  3906,  1987,
    2495,   532,  1111,  1107,  1108,   612,  1572,  3309,  1203,  2833,
    1111,  1990,  1879,  1994,  1310,  1107,  1108,  2002,  3553,  1107,
    1108,  1107,  1108,  3077,  1109,  2010,   533,  1110,  1127,  1111,
    1667,  2048,  1046,  2072,  1124, -2287,  1445,   584,  3523,  2074,
    2736,  2973,  2624,  1610,  2014,  1046,  2605,  3714,  2297,  2051,
    1865,  1109,  1107,  1108,  1110,  3381,  3092,  3386,  3387,  3200,
      43,   241,  1790,   243,  1107,  1108, -1618,  2384,  3286,  2500,
    2501,  1798,  1347,  1107,  1108,  1795,  2927,  3287,  2385,   914,
   -1641,  1107,  1108,  1429,   586,  1111,  3192,  1436,  2151,  3415,
    1915,  1107,  1108,  1348,  1302,  1559,  2383,   816,  2087,  2083,
    2015,  2928,  1107,  1108,  1109,   915,  1558,  1110,   568,  2556,
     551,  1324,  2905,  2494,  4031,  1109,  2155,  2052,  1110,   963,
    1880,  1683,  1668,  2504,  1109,   613,  2587,  1110,  3101,  3722,
    1370,  2977,  3415,  1790,  3731,  1100,  3688,  1109,  3723,  3705,
    1110,   976,   984,  1107,  1108,   568,  1607,  2145,  2146,  1461,
    1614,  2195,  1796,  2130,  1109,   558,  1109,  1110,  2059,  1110,
    1111,  1421,  1143,  2336,   817,   558,  1558,  3867,  1608,  2622,
    2737,  1107,  1108,  2170,  2060,  2016,  1754,  1107,  1108,  1109,
    1618,  1109,  1110,  2336,  1110,  1111,  3819,  2815,  3743,  1107,
    1108,  2187,  3715,  1107,  1108,  1445,  1920,  1111,  3554,  3321,
    2017,  3482,  1646,   502,  1649,  3288,   558,  2389,    55,  1107,
    1108,  2131,  2021,  1127,  1107,  1108,  2211,  2171,   558,  1243,
    1107,  1108,  3689,  1653,   568,  3078,  1109,  1799,   535,  1110,
    2157,  2158,  1499,   558,   558,  1500,  1800,  2132,  1109,  2929,
    1643,  1110,  1801,  2788,  1685,  1616,  1111,  1425,  3690,  1107,
    1108,  1618,  1694,  1776,   641,  1558,  1109,  1696,  2699,  1110,
    3203,  2040,  1107,  1108,  2891,   451,   451,   451,   558,   451,
     558,  1153,  1934,  1111,  1426,  1706,  1710,  1711,  1712,   553,
    1714,  1728,   451,  1472,   568,  3706,  1921,  2688,  2816,  3555,
     451,  3771,  2390,  1729,  1445,  1935,  3904,  1136,  1137,  1138,
    1139,  1734,  2053,  2133,   668,  3466,  2267,   550,  1515,  1311,
     558,  1109,   646,  2637,  1110,  1109,  1716,  3094,  1110,  1609,
    1109,  3868,  1312,  1110,  1755,  1697,  1111,  1802,   874,  3724,
    1107,  1108,  1109,  1962,  3772,  1110,  2766,  1111,  2212,  1107,
    1108,  2817,  1315,  1768,  1109,  3716,  1111,  1110,  1109, -1535,
    1109,  1110,  2828,  1110,   559,   568,  2213,  2689,  1713,  1111,
    1715,  2838,  2264,  3668,   520,  2661,  2661,  2214,   562,   558,
    1717,  1369,  2614,   558,  2839,  2134,  1111,  1806,  1111,  3613,
     575,  1109,  2155,  2615,  1110,  3709,  3710,   789,  1882, -1535,
     668,  3328,  1951,  1109,  2084,  1943,  1110,  1107,  1108,   874,
    1743,  1111,  1109,  1111,   657,  1110,  1619,  1519,  2293,   576,
    1109,  1698,  3421,  1110,  1803,  1963,   971,  2834,  3489,  1316,
    1109,  2638,  2431,  1110,   568,  1216,   451,   451,  1217,  1932,
     451,  1109,  1107,  1108,  1110,  -190,  1313,  1928,  1929,   564,
    2855,  2215,   998,  1370,  1948,  1375,  2767,  2432,  1111,  2690,
    3773,  1261,  2786,  3467,  3340,  1107,  1108,   581,  1314,  1881,
    1111,  3667,  1967,  1107,  1108,  1107,  1108,   790,  3422,  1376,
    2383,  1934,  1109,  2130,  1974,  1110,   673,  1619,  1111,  1367,
    1134,  1135,  1136,  1137,  1138,  1139,   116,   692,  2433,  1445,
    2499,  2434,  1977,  1558,  1935,  1807,  2888,  1107,  1108,  2435,
    1109,  1107,  1108,  1110,  2241,  2877,  1109,  1262,   936,  1110,
    1699,  1721,  1025,   955,  1107,  1108,  1046,  1995,  1109,  1107,
    1108,  1110,  1109,  2447,  1795,  1110,  1107,  1108,  1428,  2089,
    3481,  2131,  1718,  1111,  1263,   791,  2453,  1111,  1109,  1107,
    1108,  1110,  1111,  1109,  1303,  2216,  1110,  1978,  1686,  1109,
     586,  1985,  1110,  2534,  1111,   972,  1998,  1107,  1108,  1107,
    1108,  2616,  1218,  4038,  2135,  3402,  1111,  2395,  1999,  2468,
    1111,  2982,  1111,   692,  3095,  3814,  2056,  3924,  1109,  4006,
    2003,  1110,   587,  1722,  2007,   956,  2008,  3096,  2396,  1304,
    3286,  1109,  1107,  1108,  1110, -2324,  2294,  3648,  1025,  3287,
    2267,  3097,  1542,  1111,  2217,  3925,   675,  1107,  1108,  2295,
    2734,   843,   844,  3917,  2768,  1111,  3649,  2009,  2080,  3835,
    3341,   590,  3169,  3851,  1111,  2478,   568,  1107,  1108,  2013,
    2510,   568,  1111,  3428,   958,   959,  3873,   558,  2018,  2095,
     131,  3170,  1111,   132,  2100,  2100,  2026,  2100,  1107,  1108,
    1107,  1108,  1425,  1111,  1026,  2735,  2031,  2480,  1920,  1109,
     558,  1687,  1110,   558,  2389,   700,  2390,  2046,  1109,  2983,
    3171,  1110,   592,  1107,  1108,   568,   568,   558,   558,  1427,
    3662,  1790,  2969,  1107,  1108,  2100,  2100,  2100,   513,  2144,
    1966,  1144,  1107,  1108,  1111,  3852,  3435,  3436,  4011,  2163,
     594,  3663,  2293,  2182,  2769,  2436,  3948,  3948,  2790,  3439,
     597,  2939,  2193,  2980,  4012,  3442,  3342,   606,  1107,  1108,
    3429,  2985,  1111,  2189,  2987,  1807,  1109,  3288,  1111,  1110,
    1264,   749,  1107,  1108,  2099,  2099,  2806,  2099,  3458,  1375,
    1111,  3460,  2812,  3935,  1111,  2661,  3141,   558,   886,   887,
    2121,   890,  2247,  1212,  2813,  1808,  3430,  1245,  2820,  2210,
    1111,  1109,   668,  1376,  1110,  1111,   558,  1229,  2148,  1375,
    2933,  1111,  1723,  2247,  2824,  2099,  2099,  2099,  2678,  2825,
    3636,  3637,  3638,  3639,  1109,  2826,  1274,  1110,  3142,   465,
    3089,  1989,  1109,  1376,  1109,  1110,  2231,  1110,  3310,  1618,
    1111,  1982,  1144,  1107,  1108,  2238,  2239,  2078,   539,  2296,
    2248,  3103,  3104,  1111,  2827,  2079,  2243,  2244,  2245,  2246,
    1964,  2254,  2255,  2377,  1107,  1108,  1109,  2829,   608,  1110,
    1109,  2248,  3116,  1110,  2130,  2437,  2249,  2203,  4005,  2935,
    4007,  3599,  1558,  1109, -1618,  2556,  1110,  1989,  1109,  1265,
     540,  1110,  2740,  1726,  3334,  1109,  2221,  2249,  1110,  1965,
    1144,  3343,  2323,  4024,   784,  2443,  2062,  2741,  1109,  1266,
    2443,  1110,   668,  3344,  2155,  2078,  2337,   131,  2482,   609,
     132,  1111,  2156,  2913,  3853,   741,  1109,  2347,  1109,  1110,
    1111,  1110,  2131,   610,  2438,  1558,   843,   844,  2622,  2502,
    4061,  4062,  2250,  2295,  2832,  1773,   746,  2350,  2351,  1267,
    2358,  1790,  2360,  2361,  2362,  2363,  2364,   541,  2132,  2367,
    2368,  1109,  2439,  2250,  1110,   568,  2639,   796,  1558, -1535,
    2393,  2699,   800,   451,  2074,  1807,  1109,  3943,   802,  1110,
     558,   558,   558,  2416,  2398,   692,  2419,   874,  1111,   528,
    3600,  3599,  3599,   529,   888,  2492,  1109,  3345,  2102,  1110,
    2103,  3239,  2837,   908,  3240,  1638,   812,   568,  1639, -1535,
    1025,  1640,   568,   787,  2251,  2421,  1124,  1109,   917,  1109,
    1110,  1908,  1110,  1111,  2133,  1808,   909,  2513,  2157,  2158,
     926,  3768,  1197,  3769,  1908,  2251,   936,  2840,  2165,  2166,
    2167,  3383,  1109,   947,  3732,  1110,  1111,  1384,  1385,  1124,
    3744,  3832,  1109,   964,  1111,  1110,  1111,   965,  2884,  3205,
    3206,  1109,  2159,   969,  1110,  1619,  1077,   114,  2842,  1618,
    2412,  2413,  2414,  2865,  2866,  2867,  1000,  3315,  2389,  3749,
    3320,  1001,  3752,  3753,  3754,  3755,  1002,  1109,  1111,  2854,
    1110,  3275,  1111,  1004, -1618,   692,  2134,   568,   898,  1991,
    1144,  1109,  2926, -1348,  1110,  1111,  2844, -1618,  1005,  2379,
    1111,  1992,  1513,  2899,  2900,  2901,  1006,  1111,  1163,  2846,
    1025,  3098,  2511,  1144,  2847,  2443,  1009,  2590,  2595,   568,
    1111,  3599,  3599,  1181,  1010,  1558,  3225,  1011,  2888,  3228,
    3229,  4048,  2004,  1144,  2848,  3262,  1012,  1908,  1111,  1148,
    1111,  1107,  1108,  2211,  1013, -1348,  3241,  1152,  2786,  1198,
    3857,  1790,  3121,   874,  3122,  2005,  1144,  2006,  1144,  2633,
    2443,  1180,  1109,  2793,  1790,  1110,  1081,  1396,  1397,  3849,
    3850,   843,   844,  1111, -1348,  2542, -1348,   542,  3862,  1404,
    2011,  1144,  1014,  1109,  1015,  1127,  1110,  3123,  1111,  1016,
   -1348,  1017,  2557,  2252,  3500, -1348,  1020,  1182,   543,  1022,
    1807,  1147,  3327,  2256,  2257,  1023,  3599,   874,  1111, -1348,
    2576,  2578,  2488,  1144,  2252, -1348,  1024,   568,  1127,   568,
     568,  3599,  3333, -1348,  1028,  1808,  2575,   544,  1578,  1111,
    2513,  1111,  1124, -1348,  3599,  2516,  2517,  1029,  3455,  3325,
    1183,  3457,  1185,  3335, -1348,  3336,  1908,  1030,  2792, -1348,
    2830,  1144,  1559,  1031,  1111,  1184,  2513,  1032, -1348,   927,
    1033,   568,   568,  1909,  1111,  2212,  2894,  2895,  3337,  1618,
    2989,  2990,  1034,  1111,  1035,  2135,  1909,  1790,  3338,   545,
    1405,  1178,  1618,  2213,  1406,  1619,  1187,  3633,  3076,  2990,
    3599,  3501,  3502,  3490,  2214,  1407,  3503,  3504,  1036,  1111,
    1037,  2337,  3599,  3599,  3126,  1144,  2337,  1040,   928,  4021,
    1195,  2337,  2260,  1111,  1777,  2337,  1041,  2674, -1348,  3939,
    1047,  2651,  1129,  1130,  1048,  1778,   118,  2674,  2012,  2337,
    2337,  2665,   568,  1049,  2379,  2676,  2677,  2675,  1050,  2337,
   -1348,  1559,  3599,  1051,  2247,  1052,  1910,  2700,  1289, -1348,
     558,  1053,  3599,  3144,  3145,  1129,  1130,  1054,   568,  2696,
    2703,  3280,  3281,  1055,  2704,  2337,  2725,  1057,  2215,  1059,
    2706,  2707,  1196,  1003,  1107,  1108,  1060,  1290, -1348,  3313,
    3322,  1061,   929,  1062,  1111,  3599,  1790,  3599,  1063,  1909,
    3384,  1064,   958,   959,  1065,  1618,  1066,  3599,  1579,  1067,
     133,  3109,  2248,  3329,  1144,  1111,   455,   456,  3339,  1144,
    3599,  1127,  3599,  1068,  3599,  1408,  1069,   874,  1291,  1070,
    2747,  3599, -1348,  1292,  3352,  3353,   507,  1071,  2249,  -562,
     874,  3599,   514,  1072,   558,  2337,   518,  1073,  2267,  3127,
    2705,  3157,  3650, -1348,  1074,  1478,  1075,  3599,  3599,  2268,
    1132,  1133,  1134,  1135,  1136,  1137,  1138,  1139,  1079,  1910,
    1808,  1080,  1474,  1475,  1476,  1477,  1478,  1083,  3599,  3599,
    3651,  1084,  2216,  3599,  2708,  1088,  2709,  1092,  1779,  1911,
    1093, -1348,  1094,  1132,  1133,  1134,  1135,  1136,  1137,  1138,
    1139,  3469,  2257,  1095,  2250,  1619,   902,   903,  1909,   904,
    1096,   905,  3483,  3484,  1618,  1409,  3487,  3484,  1619,  3488,
    3484,  2877,  1546,  2710,  1146, -1618,  3538,  3539,  3543,  3145,
    3546,  3484,  2755,  3293,  2771,  3646,  3647,   579,  3248,  3675,
    3676,  2217,  1123, -1348,  2711,  2375,  3680,  3484,  1482,  1210,
    -562,  3681,  3484,   874, -1348, -1348,   460,  1780,  1129,  1130,
    2095,  1204,  1202,   568,   568,   568,  1479,  1480,  1481,  1482,
    1293,  1211, -1348,   558, -1348,  1224,  2251,  2712,  3563,  3249,
    1235,  1781,  1236,  3250,  3563,  1239,   568,  1375,   930,  1559,
    3652,  3683,  3484,  1580, -1348, -1348,  3684,  3484, -1348, -1348,
    4041,  4042,  1911,   568,   568,   568,  1449,  1450,  1451,  1581,
    1240,  1376,  3693,  3694,  3695,  3696,  2912,  1243,  1462,  2443,
    3697,  3696,  2914,  1246,  2916,  3251,  3318,  1254,  1558,  1255,
     568,  1619,  2911,  3874,  3676,  3875,  3676,  1124,  1782,  1294,
    2211,  3880,  3145,  1483,  1259,  3908,  3909,  1486,   931,  1516,
     932,   114,  1520,  1260,  1487,  3915,  3916,  1548,  1548,  1272,
    3307,  3308,   874,  2121,  1483,  3653,  1484,  1485,  1486,  1823,
    1824,  1281,  1538,  1539,  1282,  1487,  1543,  3970,  2746,  4077,
    4078,  1283,  3654,  3855,  3855,  1284,  1132,  1133,  1134,  1135,
    1136,  1137,  1138,  1139,  1285,  1560,  1561,  3549,  3550,  1295,
    2337,  -687,  -687,  1826,  3655,  2337,  2337,  1286,  2674,  1308,
    -687,  3161,  3162,  1109,  1829,  1309,  1110,  3131,  3132,  1325,
    1783,   568,  1830,  1326,  2337,  3350,  3351,  1323,  1488,  1328,
    1333,  1338,  1344,  1125,  1350,   115,  1354,  1352,  2975,  2674,
    1619,  1357,  1832,  1358,  1362,  -701,  2978,  2674,   827,  1488,
    2674,  -562,  1366,   116,  1365,  1126,  1344,  1413,  3842,  1833,
     558,  1414,  2212,  1415,  1418,  2252,  1420,  1441,  1421,  2991,
    1439,   478,   558,  1142,  1445,  1452,  3047,  1490,  1464,  1087,
    2213,  3406,   451,  1466,  1502,  1512,  3057,  1838,  1513,  2347,
    1556,  2214,  1514,  3053,  1568,  1573,  3062,  1489,  1490,  1589,
    1296,   743,   744,  1595,  2713,   747,   748,  1622,  3072,   750,
    1615,   752,  1623,  3626,  3630,   558,  1127,  1631,   117,  1628,
    1632,  1558,  1633,  3510,  1635,  1636,  3085,   479,  1654,  3890,
    1027,  1078,  1082,  1297,   463,   958,   959,   958,   959,  1655,
    3787,  1658,  1660,  3252,  3890,   118,  1664,  1672,  3166,  3253,
    1673,  1674,  1841,  1245,   480,  3842,  1675,  3900,   874,  1681,
    1842,   828,  2992,  1689,  2633,  2215,  1695,  1704,  1708,  3565,
    1820,  1732,  1736,  3656,  1737,  1843,  1738,  1821,  1822,  1741,
    1739,  1751,  1753,  -562,   481,  3254,  1749,  3388,  1766,  1823,
    1824,  1775,  2267,  1876,  3125,   119,  1370,   753,   459,  1884,
    1887,  3524,  2576,  2268,  1491,  3074,  1128,  1885,  1888,  -562,
    1886,  1889,  1890,  1891,  1903,   799,  1493,  1892,  2575,  1825,
    3842,  1922,   810,  1826,  1827,  1491,  2542,  1844,  1828,  1893,
     829,   482,  1894,  1895,  1829,  1111,  1492,  1493,  2557,  3156,
    1124,   568,  1830,   894,  1845,  1896,  1897,  1898,  3255,  1831,
     568,  3626,  1899,  1129,  1130,  3630,  2511,  1900,  1124,  1904,
    1901,  1902,  1832,  1925,  1131,  3890,   568,  1923,  1927,  2216,
    1937,  1938,  1124,  3601,  2182,  3987,  1344,  1939,  1940,  1833,
     460,  3544,  3545,  1946,  3547,  3548,  1834,  1835,  1953,  1955,
    3698,  1559,  1956,  1836,  -562,  1124,  1849,  1957,  1972,   739,
     460,  1837,  1973,  2337,  1851,  -803,  1979,  1838,  1981,  3626,
    3630,  -733,  1983,  2337,   120,  2674,  1980,  1989,  1993,  2029,
    4015,  1997,  2001,  1558,  1559,   739,  4058,   620,  2217,  2674,
    2019,  1375,  2020,  2337,  1839,  3890,  2821,  3890,  2025,  2041,
    2443,  3660,  2030,  3256,  4034,   -63,  1558,  2042,  1952,  2043,
     483,  2055, -1069,  2061,  3890,  1376,  1139,  2071,   461,  2091,
   -1186,  2115,  2090,  3961,  3962,  1558,  3964,  1857,  4058,  2118,
    1840,  2127,  1841,  2139,  2142,  1162,  2164,   121,  2178,  2190,
    1842,  1132,  1133,  1134,  1135,  1136,  1137,  1138,  1139,  2192,
    2196,  3890,  3890,  2198,  3409,  1843,  4081,  2219,  2220,  2223,
    2224,   641,  1165,  2226,  3372,  2230,  2267,  3997,  2237,  3998,
    3999,  2279,  2284,   484,  3277,  2285,  2232,  1996,  2233,  1127,
    1858,  2000,  2234,  2235,  2288,  3306,  3306,  3306,  2236,  2289,
    2291,   122,  3298,  -864,  2292,  1859,  2298,  1127,  1860,  2301,
    2307,   739,   568,  2308,  2024,  2300,   739,  1844,  2312,  2313,
    2318,  1127,   645,  2319,  2378,  2399,  2340,  2417,  2421,   646,
    2425,  2430,  1861,  2448,  1845,  2449,  2450,   485,  1846,  2079,
    2508,   486,  2460,  1862,  1127,  2461,   739,  2473,  2498,  1166,
    2489,  2490,  2269,  3660,  2507,   650,  3361,  2491,  3826,   487,
    2633,  1559,   739,  3828,  4075,  -562,   830,   831,   832,   833,
     834,   835,  2520,  2515,  1847,  2518,   568,  2521,  2519,  1848,
    2522,  2528,  2211,   836,   488,  2533,  1849,  2535,  2530,  2543,
    2559,  2560,  2561,  1850,  1851,  2778,  2532,  2562,  2171,   489,
    2536,  2170,  2547,   739,   739,   739,   739,  2580,  3382,  1167,
     462,  2602,  2579,  2603,  2610,   739,  2606,  3306,  2581,  2611,
    2612,   657,  2628,  1852,  2635,  2636,  1129,  1130,   463,  2443,
    2681,  1168,  2683,  1114,  1115,  1853,  1854,  1855,  1856,  2717,
    2733,  2743,  3524,  2739,  1129,  1130,  3418,  2745,   463,  2752,
    2753,  2746,  2758,  2757,  2759,  1850,  1768,  1857,  1129,  1130,
    1947,  2783,   568,  2802,   464,  2803,  -488,  1116,   465,  2793,
    2797,  2863,  2804,  2805,  2807,  2808,  1117,   668,  2853,  3444,
    2868,  1129,  1130,  2851,  3166,  2858,  2870,  3461,  3445,  2861,
    2874,  2879,   672,   673,  3465,  1216,  2882,  2898,  2883,  2890,
    2893,  2896,  2909,   466,  2212,  2910,  2923,  2915,  2934,  3072,
    1858,   467,  2945,  1118,  3470,  2940,  2944,  3048,  3051,  3054,
    3055,  2960,  2213,  -562,  1119,  1859,  1169,  2961,  1860,  2948,
    2972,   568,  3059,  2214,  1170,  3067,  3073,  2981,  3068,  -405,
    2155,  3087,  3137,  3105,  3061,  3082,  3139,  3083,  3084,  3113,
    3159,  1120,  1861,  3167,  1132,  1133,  1134,  1135,  1136,  1137,
    1138,  1139,  4083,  1862,  1171,  3179,  3184,  3102,  3112,  3185,
    3124,  3175,  3514,  1133,  1134,  1135,  1136,  1137,  1138,  1139,
    3148,  3180,  3207,  3176,  3204,  3826,   568,  3197,  1134,  1135,
    1136,  1137,  1138,  1139,  3208,  3219,  3993,  3226,  3271,  3274,
    2338,  1172,  3276,  3278,  3285,  3536,  1121,  2215,  3295,  1132,
    1133,  1134,  1135,  1136,  1137,  1138,  1139,  3306,  3306,  -803,
    3306,  3306,  3294,  3296,  3299,  1173,  3300,  3302,  3265,  3311,
    3312,  3313,  3314,  3323,  3324,  2443,  3559,  3326,  3330,   739,
    3331,  3332,  3355,  1174,  1777,  3348,   132,  3356,  3366,  3368,
    3357,  2913,  3660,  3369,  3359,  1778,  3993,  3374,  3353,  3373,
     692,  3377,  3379,  3380,  3410, -1269, -1274,  3411,  3392,  3404,
    3405,  3407,  3408,  3434,  3262,  3448,  3440,   698,  4070,  3438,
    3449,  3450,   700,  3452,  3453,   701,  3606,   558,  3459,  3491,
    3493,  3494,   739,   739,  3823,  3471,  3508,  3306,  3509,  3486,
    3515,   739,   739,   739,   739,   739,   739,   739,  3472,  3495,
    3496,  2216,   739,  4070,  3530,   739,   739,  3497,   739,  3527,
     739,  3528,   558,  3552,   739,  3532,  3566,   739,   739,   739,
     739,  3568,   739,   739,  3412,  3413,  3610,   568,  3534,   620,
     739,   739,   757,   739,   739,   739,   739,   739,  3322,   739,
    3567,   739,   739,   739,   739,   739,   739,   739,   739,   739,
     739,   739,  3622,  3602,   739,   739,  3632,   739,  3615,   739,
    2217,  3635,  3641,   739,  3670,   739,   739,  3607,  3644,  3677,
    3672,  3700,  -275,  3718,  3704,  3674,  3727,   739,   739,  3711,
    3721,  1197,  3686,   739,  3730,  3735,   739,  3720,  3736,  3747,
    3748,  3750,  3751,   739,   739,   739,  3409,   739,  1779,  3756,
    3759,  3763,  3642,   641,   739,   739,   739,   758,   739,   739,
     739,   739,   739,  3765,   739,   739,   739,   739,   739,   739,
     739,   739,  3767,  2729,  3781,   739,   739,  3791,  3794,  -293,
    3820,  3821,  3822,  3834,  3859,   759,  3837,  3871,  3876,  3877,
    3878,  3879,  3886,   794,  1559,  3887,  3899,  3897,   760,  3891,
    3514,  3898, -1348,  3902,   645,  3919,  3858,  3920,  3921,  3922,
    3928,   646,  3931,  3936,  3938,  3941,  3940,  1780,  3944, -2084,
     761,  3950,   762,  3955,  3956,  3536,  3960,  3536,  3963,  3770,
    2104,  3965,  3966,   763,  3968,  3975,  3969,   650,   958,   959,
    3989,  1781,  3988, -1420,  4000,  4002,  4003,  3785,  4008,  4004,
    2105,  4009,  4016,   764, -1348,  4019,  4013,  4023,  1198,  4020,
    3795,  4029,  4027,  4032,  2106,  4035,  4033,  4036,  4040,  4044,
    4046,  4053,  4073,  2107,  4059,  4082,  2514,   765,  3713,  2370,
    3284,   739,  2643,  3475,   766, -1348,   981,  3728,  3829,   739,
    3951,  1356,  3952,  3473,  3477,  3605,  4085,  4049,  1782, -1348,
    3579,  3580,  3582,   657, -1348,  4063,  3583,  3972,   568,  3585,
    3884,  3586,  3587,  2513,  1007,  3588,  3864,  3589,  3848,  3590,
    2108,  2109,  3973,   767, -1348,  3593,  3949,  3594,  3896,  3895,
    1417,  3595, -1348,  1819,  2878,  3146,  1863,  3643,  2082,  3612,
    2702,  3746, -1348,  3362,  1039,  3954,  3838,  3959,  2110,  3911,
    3992,  1907,   607, -1348,  3301,  2327,  3541,  3758, -1348,   668,
    1056,  3065,  2776,  3220,  2334,  3958,  2730, -1348,  3209,  2656,
    3233,  3272,  3561,  3417,   672,   673,  3234,  3451,  3443,  3836,
    1783,  3212,  3173,  3776,  3560,  3784,   474,  1559,  1382,  1383,
    1384,  1385,  1386,  1387,   475,  1388,  1389,  1390,  1391,  1392,
    1393,  1394,  3779,  1395,  1102,  3778,  2111,  3692,  1936,  1823,
    1824,  3737,  2411,  3733,  3621,   568,  3738,  3564,  3912,  3913,
    2331,  2720,  3211,  3420,  2208,  2544,  3210, -1348,  1752,  1905,
    1374,  2347,  2347,  2873,  2147,  2531,  2563,   906,  3661,  2169,
    3128,  -687,  -687,  1826,   768,  1511,  1250,  3181,  2860, -1348,
    -687,  3679,  2446,  2623,  1829,  3540,  2112,  3929, -1348,  3060,
    3930,  1549,  1830,   769,  3215,  2505,  3537,   568,  4039,   770,
    1463,  3526,  2570,  3856,  2415,  1677,  2550,   771,  1652,  2527,
    3364,  3152,  1832,  3191,   739,  3151,  4079, -1348,  3905,   895,
    3977,  1945,   880,   999,  2092,  2200,  1344,  3985,  1720,  1833,
     772,  3138,  2988,  1679,  3953,  3991,  4076,  4084,  3923,  3967,
    3447,  2179,  3155,   773,   774,  2931,  3177,  1693,  3378,  3529,
    1396,  1397,  1684,  2126,   823,  3634,  1238,  1838,  2862,  3640,
    1645, -1348,  1926,   825,  1242,  2487,   601,  2850,   985,  1564,
     602,   986,   692,   987,     0,     0,  3410,     0,     0,  3411,
       0,     0, -1348,     0,   775,     0,     0,  4025,     0,   698,
       0,     0,  4030,     0,   700,     0,     0,   701,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,   776,   739,   739,   739,     0,     0,     0,  1559,
   -1348,     0,  1841,     0,     0,     0,     0,     0,  4071,   739,
    1842,     0,     0,     0,   777,     0,   778,     0,   568,     0,
       0,     0,  1559,     0,     0,  1843,  3412,  3413,     0,     0,
       0,   739,     0,     0,     0,     0,     0,   739,  2401,     0,
     739,  1559,   739,  4071,     0,     0,     0,  1381,   739,     0,
     739,   739, -1348,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0, -1348,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  1844,     0,     0,
       0, -1348,     0, -1348,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  1845,     0,     0,     0,     0,     0,
    1443,  1444,     0, -1348, -1348,     0,     0, -1348, -1348,  1454,
    1455,   739,     0,  1458,  1459,  1460,     0,     0,     0,     0,
    1465,     0,     0,  1467,  1468,     0,  1469,     0,  1470,     0,
       0,     0,     0,     0,     0,  1504,  1505,  1506,  1507,     0,
    1509,     0,   756,   757,     0,     0,  1849,     0,  1517,  1518,
       0,  1521,  1522,     0,  1851,     0,     0,  1526,     0,  1527,
    1528,  1529,     0,     0,  1532,  1533,  1534,  1535,  1536,  1537,
       0,     0,  1540,  1541,     0,  1544,     0,  1545,     0,     0,
       0,  1550,     0,  1554,  1555,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1562,  1563,     0,     0,     0,
       0,  1102,     0,     0,  1569,     0,     0,     0,     0,     0,
       0,  1574,  1575,  1576,     1,     2,     0,  1857,   758,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     3,
       0,     4,     0,     0,     0,     5,     0,     0,     0,     0,
       0,     0,     0,     0,  1612,     0,   759,     0,     0,     6,
       7,     0,     0,     0,     0,     0,     8,     0,     0,   760,
       9,    10,     0,     0,     0,     0,     0,     0,     0,     0,
    1858,     0,     0,    11,     0,     0,     0,     0,     0,     0,
       0,   761,     0,   762,     0,  1859,     0,     0,  1860,    12,
       0,     0,     0,     0,   763,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,    13,
       0,     0,  1861,     0,   764,     0,     0,    14,    15,    16,
       0,     0,     0,  1862,     0,     0,     0,     0,   739,    17,
      18,     0,     0,     0,     0,     0,     0,     0,   765,     0,
       0,     0,    19,     0,     0,   766,     0,     0,     0,  1692,
       0,     0,     0,     0,    20,     0,     0,  1707,     0,     0,
       0,     0,   821,   757,     0,     0,     0,     0,     0,     0,
      21,     0,     0,  2402,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   767,    22,     0,     0,     0,     0,
      23,     0,   739,    24,     0,     0,   739,     0,     0,     0,
       0,   739,   739,     0,     0,     0,     0,     0,     0,     0,
     739,     0,     0,   739,     0,     0,    25,     0,    26,     0,
       0,     0,     0,   739,     0,   739,   739,     0,   739,   739,
     739,   739,   739,     0,    27,   739,     0,     0,   758,     0,
       0,     0,     0,     0,   739,     0,     0,     0,     0,     0,
       0,    28,   739,     0,   739,    29,   739,   739,   739,   739,
       0,     0,     0,   739,   739,   739,   759,     0,     0,     0,
     739,   739,   739,     0,   739,     0,   739,     0,   739,   760,
     739,     0,   739,     0,     0,     0,     0,   739,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   739,     0,     0,
       0,   761,     0,   762,   739,   768,     0,   739,     0,     0,
       0,     0,     0,   739,   763,     0,   739,     0,     0,     0,
     739,     0,     0,     0,   769,     0,     0,     0,     0,     0,
     770,     0,     0,     0,   764,     0,     0,     0,   771,     0,
       0,    30,     0,  1823,  1824,     0,     0,     0,     0,     0,
       0,     0,  1958,     0,     0,     0,     0,     0,   765,     0,
      31,   772,     0,     0,     0,   766,     0,     0,     0,     0,
      32,     0,     0,     0,   773,   774,     0,  1826,     0,     0,
      33,     0,     0,     0,     0,     0,     0,     0,  1829,     0,
       0,     0,     0,     0,     0,     0,  1830,     0,     0,     0,
      34,     0,     0,    35,   767,    36,     0,     0,    37,     0,
       0,    38,     0,    39,     0,   775,  1832,     0,    40,     0,
      41,     0,     0,     0,     0,     0,     0,    42,     0,     0,
    1344,     0,    43,  1833,     0,     0,     0,     0,     0,     0,
      44,     0,     0,   776,     0,    45,     0,     0,     0,    46,
       0,  2033,  2035,  2037,     0,     0,     0,     0,  1823,  1824,
       0,  1838,     0,     0,     0,   777,     0,   778,     0,     0,
       0,     0,    47,     0,     0,     0,    48,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  2063,
    -687,  -687,  1826,     0,     0,     0,     0,     0,  2068,  -687,
    2069,     0,     0,  1829,     0,     0,     0,     0,     0,     0,
       0,  1830,  1474,  1475,  1476,  1477,  1478,    49,     0,     0,
       0,     0,     0,     0,     0,   768,  1841,     0,     0,    50,
       0,  1832,     0,    51,  1842,     0,    52,     0,     0,     0,
       0,    53,     0,     0,   769,  1344,     0,     0,  1833,  1843,
     770,     0,     0,     0,     0,     0,     0,     0,   771,     0,
       0,     0,     0,     0,     0,     0,    54,     0,     0,  2143,
       0,     0,     0,     0,     0,     0,  1838,     0,     0,     0,
      55,   772,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   773,   774,     0,     0,     1,     2,
       0,  1844,     0,     0,     0,     0,  1479,  1480,  1481,  1482,
       0,     0,     0,     3,     0,     0,     0,     0,  1845,     5,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     6,     7,   775,     0,     0,     0,     0,
       8,  1841,     0,     0,     9,    10,     0,     0,     0,  1842,
       0,     0,     0,     0,     0,     0,     0,    11,     0,     0,
       0,     0,     0,   776,  1843,   739,     0,     0,     0,   739,
    1849,     0,     0,    12,     0,     0,     0,     0,  1851,     0,
       0,     0,     0,     0,     0,   777,     0,   778,     0,     0,
       0,   739,   739,    13,     0,     0,     0,     0,     0,     0,
       0,    14,    15,    16,  1483,     0,  1484,  1485,  1486,     0,
       0,   739,     0,    17,    18,  1487,  1844,     0,     0,     0,
     739,     0,   739,     0,   739,     0,     0,     0,     0,     0,
       0,     0,     0,  1845,     0,     0,     0,     0,    20,   739,
       0,  1857,     0,     0,   739,     0,     0,     0,     0,     0,
       0,     0,     0,     0,    21,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,   739,     0,     0,    22,
       0,     0,     0,     0,    23,     0,   739,    24,     0,     0,
       0,     0,     0,     0,     0,  1849,  2348,     0,     0,  1488,
       0,     0,     0,  1851,  1858,     0,     0,     0,     0,     0,
      25,     0,    26,     0,     0,     0,     0,     0,     0,  1859,
       0,     0,  1860,     0,     0,     0,     0,     0,    27,     0,
       0,     0,     0,     0,   739,     0,     0,     0,   739,     0,
       0,     0,     0,     0,     0,    28,  1861,  1489,  1490,    29,
       0,     0,     0,     0,     0,     0,     0,  1862,     0,     0,
    2424,     0,     0,     0,  2426,     0,  1857,     0,     0,  2428,
    2429,     0,     0,     0,     0,     0,     0,     0,  2444,     0,
       0,   739,     0,     0,     0,     0,     0,     0,     0,     0,
       0,  2451,     0,  2452,     0,     0,  2454,  2455,  2456,  2457,
    2458,     0,     0,     0,   739,     0,     0,     0,     0,     0,
       0,     0,  2462,     0,     0,     0,     0,     0,     0,  1858,
    2463,     0,  2464,     0,  2465,  2466,  2467,     0,     0,     0,
       0,  2470,  2471,  2472,  1859,    30,     0,  1860,  2474,  2475,
    2476,     0,  2477,     0,  2479,     0,  2481,     0,  2483,     0,
    2484,     0,     0,     0,    31,  2485,     0,     0,     0,     0,
       0,  1861,     0,     0,    32,  2493,     0,     0,     0,     0,
       0,     0,  1862,     0,    33,  1491,     0,     0,     0,     0,
       0,  2503,     0,     0,  2506,     0,  1492,  1493,   739,   739,
       0,     0,     0,     0,    34,     0,     0,    35,     0,    36,
       0,     0,    37,     0,     0,    38,     0,    39,     0,  2993,
    2994,     0,    40,     0,    41,  2995,     0,  2996,     0,  2997,
    2998,    42,     0,     0,     0,     0,    43,     0,     0,     0,
       0,     0,     0,     0,    44,  2999,     0,     0,     0,    45,
       0,     0,     0,    46,   739,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,    47,     0,   739,   739,
      48,   739,     0,     0,     0,     0,  3000,     0,     0,  3001,
     739,     0,     0,     0,     0,   739,     0,  3002,   739,     0,
     739,   739,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  3003,     0,     0,     0,     0,   739,
       0,    49,     0,     0,     0,     0,     0,     0,     0,     0,
     739,  3004,     0,    50,     0,     0,     0,    51,     0,     0,
      52,     0,     0,     0,     0,    53,     0,     0,     0,     0,
       0,   739,     0,  3005,     0,  3006,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  3007,  3008,     0,
      54,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     739,     0,     0,     0,    55,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   739,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  3009,     0,     0,
       0,     0,   739,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  3010,     0,     0,     0,     0,
       0,     0,     0,     0,  3011,  3012,     0,  3013,     0,     0,
       0,     0,     0,   841,     0,     0,     0,     0,     0,     0,
       0,     0,     0,   803,   842,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  3014,  3015,  3016,     0,
       0,     0,     0,     0,     0,     0,     0,   843,   844,     0,
       0,     0,     0,     0,  3017,  3018,  3019,   845,     0,   846,
    3020,     0,     0,  3021,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   847,     0,   848,     0,   849,  3022,
    3023,     0,     0,     0,     0,     0,   850,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  2789,     0,     0,     0,  2791,     0,     0,
       0,  3024,  3025,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  2810,
    2811,     0, -1618,   851,     0,  3026,     0,   852,     0,     0,
     853,     0,     0,     0,     0,     0,     0,     0,     0,  2831,
       0,     0,     0,     0,     0,     0,     0,     0,  2841,     0,
    2843,     0,  2845,     0,     0,     0,   854,     0,   855,     0,
       0,   739,     0,   856,     0,   857,     0,     0,     0,     0,
       0,     0,  3027,     0,     0,     0,  3028,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  3029,   858,   859,     0,
       0,     0,   860,     0,  2869,     0,     0,     0,     0,     0,
     739,   739,     0,     0,     0,     0,     0,     0,     0,   739,
     861,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   862,     0,     0,     0,     0,  3030,     0,     0,  3031,
       0,     0,  3032,  3033,  3034,  3035,     0,     0,     0,     0,
       0,     0,  2921,  2718,     0,     0,  2925,     0,   863,     0,
    1821,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  1823,  1824,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  3036,  3037,     0,     0,     0,     0,
     864,     0,     0,     0,     0,     0,     0,     0,     0,  2954,
     865,     0,  1825,     0,     0,  3038,  1826,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  1829,     0,   866,
       0,     0,  2959,     0,     0,  1830,     0,     0,     0,     0,
       0,     0,  1831,     0,     0,     0,     0,     0,     0,     0,
     739,     0,   867,     0,     0,  1832,     0,     0,     0,     0,
       0,     0,     0,   868,   869,     0,     0,   870,   871,  1344,
       0,     0,  1833,     0,     0,   739,     0,     0,     0,  1834,
       0,     0,     0,     0,     0,     0,  2719,     0,     0,     0,
     739,     0,     0,     0,  1837,     0,     0,     0,     0,     0,
    1838,     0,     0,   739,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  3049,  3050,     0,     0,
       0,     0,     0,     0,     0,     0,   872,  1839,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,   873,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0, -2110,     0,     0,  1841,   874,     0,     0,     0,
       0,     0,  3090,  1842,     0,     0,     0,     0,     0,     0,
       0,     0,     0,   875,     0,     0,  3597,     0,  1843,     0,
       0,     0,     0,     0,     0,     0,  3107,  3108,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  3115,     0,
       0,     0,     0,  3117,     0,     0,  3118,     0,  3119,  3120,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,   739,     0,     0,     0,     0,     0,     0, -2110,
    1844,     0,     0,     0,   739,   876,     0,     0,  3134,     0,
       0,     0,     0,   739,     0,   739,     0,  1845,     0,     0,
       0,  1846,     0,     0,     0,     0,     0,     0,     0,  3134,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     739,     0,     0,     0,     0,     0,  3597,  3597,     0,     0,
       0,     0,  1848,     0,     0,     0,     0,     0,     0,  1849,
       0,     0,  3178,     0,     0,     0,     0,  1851,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    3134,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  1854,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1857,     0,     0,     0,     0,   739,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,   739,     0,   739,     0,     0,     0,     0,     0,
       0,     0,     0,  1858,   739,     0,  3597,  3597,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  1859,     0,
       0,  1860,     0,     0,     0,     0,     0,     0,  3833,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   739,
       0,     0,     0,     0,     0,  1861,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  1862,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   739,
       0,  3597,     0,     0,     0,     0,     0,     0,     0,  3134,
       0,     0,     0,     0,     0,     0,  3597,   739,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  3597,
       0,     0,     0,     0,     0,     0,     0,   739,     0,     0,
       0,     0,     0,     0,     0,     0,   739,     0,  3390,  3391,
       0,     0,     0,     0,     0,     0,     0,  2954,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   739,  3597,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  3597,  3597,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   739,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  3597,     0,     0,
       0,     0,     0,     0,   739,     0,     0,  3597,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,   739,     0,     0,     0,     0,     0,     0,
    3597,     0,  3597,     0,     0,     0,     0,     0,  3492,     0,
       0,     0,  3597,     0,     0,   739,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  3597,     0,  3597,     0,  3597,
       0,     0,     0,  3134,     0,     0,  3597,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  3597,     0,  2954,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,  2921,  3597,  3597,     0,     0,     0,     0,   739,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  3597,  3597,     0,     0,     0,  3597,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  3666,     0,     0,     0,     0,     0,     0,     0,
       0,  3671,     0,  3673,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  3699,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  2954,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    3789,     0,  3790,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  3798,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  3888,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  3893,     0,     0,     0,     0,
       0,   138,     0,   616,   140,   141,   142,   143,     0,     0,
       0,     0,     0,   144,     0,  3134,   617,     0,   146,   147,
     148,   149,   150,   618,   152,     0,   153,     0,     0,   619,
     154,   620,   621,   622,   155,   623,     0,   156,   157,   158,
    1551,   159,     0,   160,   161,     0,     0,   162,   624,   625,
     163,     0,   164,   626,   627,   166,     0,   167,   168,   169,
     628,   171,  3934,   629,   173,     0,   174,   175,   176,   177,
     178,   179,   180,     0,   181,   182,     0,   630,   184,     0,
     185,   631,   632,   186,     0,     0,   187,   633,   634,     0,
     635,   636,     0,   188,   189,   190,   637,   638,   639,     0,
       0,     0,     0,   640,   193,   641,     0,     0,   642,   194,
       0,   195,     0,     0,     0,   196,     0,   197,   198,   199,
     200,     0,  3979,     0,   201,     0,     0,   202,   203,   204,
       0,     0,     0,   205,     0,   206,   207,     0,   208,   209,
     210,     0,     0,   211,     0,   212,   213,   214,   215,   216,
     643,  4001,   217,   218,   219,   644,   645,   220,   221,     0,
     222,   223,   224,   646,     0,   225,     0,     0,     0,   226,
     227,     0,   228,  4018,   229,     0,   647,   231,   648,   233,
       0,   234,     0,   649,     0,   235,   236,     0,   237,   650,
       0,   238,   239,     0,     0,     0,   651,   241,   242,   243,
     652,     0,   244,   245,     0,     0,   246,     0,   247,     0,
       0,   653,   248,   249,   654,     0,     0,   250,     0,   251,
     252,     0,   253,   254,     0,     0,  4072,   255,     0,     0,
     256,   257,     0,  1552,   258,     0,   655,   259,   260,     0,
       0,     0,     0,     0,   656,   262,     0,   263,     0,   264,
       0,   265,   266,     0,     0,   657,     0,     0,     0,     0,
     267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
     277,   278,   279,     0,   280,   281,   658,   282,   283,   284,
     285,   659,   286,   287,   288,     0,     0,     0,   289,   290,
     291,   660,   293,     0,     0,   661,   295,   662,   296,     0,
     297,   663,   664,   665,   666,   667,   302,   303,   304,   305,
       0,   668,   306,   307,     0,     0,   308,   309,   310,   311,
     669,   670,   671,   312,   313,     0,   672,   673,     0,   314,
     315,   674,     0,   317,   318,   319,     0,   320,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   321,   322,   323,
     675,   324,   325,   326,   327,   328,   676,   330,   331,   332,
     677,   678,   335,   679,     0,   336,   337,   338,     0,   339,
       0,   340,   341,   342,   343,     0,   680,   345,   346,     0,
       0,   347,     0,     0,     0,   348,   349,   350,   351,   352,
       0,     0,   353,   354,   355,     0,   356,   357,     0,   358,
     359,   360,   681,   682,   361,     0,   362,   363,   364,     0,
     365,   366,     0,     0,   683,   367,   368,   369,   370,   371,
     684,   373,   374,   375,     0,   685,   377,     0,     0,     0,
     378,   379,   380,   381,     0,     0,     0,   382,     0,     0,
       0,   383,   384,   385,   386,     0,   387,   388,   389,   390,
     391,     0,     0,     0,     0,     0,     0,   392,   393,     0,
     394,     0,     0,   395,     0,     0,   396,   397,   398,   686,
     687,   399,   400,     0,   401,   688,   403,   404,   405,   689,
     690,   406,   407,   408,   409,   691,   410,   411,     0,     0,
     412,   413,   414,     0,   692,   415,   416,     0,   693,   694,
     695,   696,     0,     0,     0,     0,  1553,   421,   422,     0,
     697,   698,   699,   424,   425,   426,   700,   427,   428,   701,
     429,   430,     0,   431,   432,     0,     0,   433,     0,     0,
     434,     0,   435,     0,   702,   437,     0,     0,   703,   704,
     705,   706,   438,     0,     0,   439,   707,     0,   708,   440,
     441,   442,   709,     0,     0,     0,     0,   444,   445,     0,
     446,   447,     0,     0,   710,     0,     0,     0,   711,   712,
       0,     0,     0,     0,   713,   714,     0,     0,   715,   716,
       0,     0,   717,   718,   138,     0,   616,   140,   141,   142,
     143,  2917,     0,     0,     0,     0,   144,     0,     0,   617,
       0,   146,   147,   148,   149,   150,   618,   152,     0,   153,
       0,     0,  2918,   154,   620,   621,   622,   155,   623,     0,
     156,   157,   158,     0,   159,     0,   160,   161,     0,     0,
     162,   624,   625,   163,     0,   164,   626,   627,   166,     0,
     167,   168,   169,   628,   171,     0,   629,   173,     0,   174,
     175,   176,   177,   178,   179,   180,     0,   181,   182,     0,
     630,   184,     0,   185,   631,   632,   186,     0,     0,   187,
     633,   634,     0,   635,   636,     0,   188,   189,   190,   637,
     638,   639,     0,     0,     0,     0,   640,   193,   641,     0,
       0,  2919,   194,     0,   195,     0,     0,     0,   196,     0,
     197,   198,   199,   200,     0,     0,     0,   201,     0,     0,
     202,   203,   204,     0,     0,     0,   205,     0,   206,   207,
       0,   208,   209,   210,     0,     0,   211,     0,   212,   213,
     214,   215,   216,   643,     0,   217,   218,   219,   644,   645,
     220,   221,     0,   222,   223,   224,   646,     0,   225,     0,
       0,     0,   226,   227,     0,   228,     0,   229,     0,   647,
     231,   648,   233,     0,   234,     0,   649,     0,   235,   236,
       0,   237,   650,     0,   238,   239,     0,     0,     0,   651,
     241,   242,   243,   652,     0,   244,   245,     0,     0,   246,
       0,   247,     0,     0,   653,   248,   249,   654,     0,     0,
     250,     0,   251,   252,     0,   253,   254,     0,     0,     0,
     255,     0,     0,   256,   257,     0,     0,   258,     0,   655,
     259,   260,     0,     0,     0,     0,     0,   656,   262,     0,
     263,     0,   264,     0,   265,   266,     0,     0,   657,     0,
       0,     0,     0,   267,   268,   269,   270,   271,   272,   273,
     274,   275,   276,   277,   278,   279,     0,   280,   281,   658,
     282,   283,   284,   285,   659,   286,   287,   288,     0,     0,
       0,   289,   290,   291,   660,   293,     0,     0,   661,   295,
     662,   296,     0,   297,   663,   664,   665,   666,   667,   302,
     303,   304,   305,     0,   668,   306,   307,     0,     0,   308,
     309,   310,   311,   669,   670,   671,   312,   313,     0,   672,
     673,     0,   314,   315,   674,  2920,   317,   318,   319,     0,
     320,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     321,   322,   323,   675,   324,   325,   326,   327,   328,   676,
     330,   331,   332,   677,   678,   335,   679,     0,   336,   337,
     338,     0,   339,     0,   340,   341,   342,   343,     0,   680,
     345,   346,     0,     0,   347,     0,     0,     0,   348,   349,
     350,   351,   352,     0,     0,   353,   354,   355,     0,   356,
     357,     0,   358,   359,   360,   681,   682,   361,     0,   362,
     363,   364,     0,   365,   366,     0,     0,   683,   367,   368,
     369,   370,   371,   684,   373,   374,   375,     0,   685,   377,
       0,     0,     0,   378,   379,   380,   381,     0,     0,     0,
     382,     0,     0,     0,   383,   384,   385,   386,     0,   387,
     388,   389,   390,   391,     0,     0,     0,     0,     0,     0,
     392,   393,     0,   394,     0,     0,   395,     0,     0,   396,
     397,   398,   686,   687,   399,   400,     0,   401,   688,   403,
     404,   405,   689,   690,   406,   407,   408,   409,   691,   410,
     411,     0,     0,   412,   413,   414,     0,   692,   415,   416,
       0,   693,   694,   695,   696,     0,     0,     0,     0,     0,
     421,   422,     0,   697,   698,   699,   424,   425,   426,   700,
     427,   428,   701,   429,   430,     0,   431,   432,     0,     0,
     433,     0,     0,   434,     0,   435,     0,   702,   437,     0,
       0,   703,   704,   705,   706,   438,     0,     0,   439,   707,
       0,   708,   440,   441,   442,   709,     0,     0,     0,     0,
     444,   445,     0,   446,   447,     0,     0,   710,     0,     0,
       0,   711,   712,     0,     0,     0,     0,   713,   714,     0,
       0,   715,   716,     0,     0,   717,   718,   138,     0,   616,
     140,   141,   142,   143,     0,     0,     0,     0,     0,   144,
       0,     0,   617,     0,   146,   147,   148,   149,   150,   618,
     152,     0,   153,     0,     0,   619,   154,   620,   621,   622,
     155,   623,     0,   156,   157,   158,     0,   159,     0,   160,
     161,     0,     0,   162,   624,   625,   163,     0,   164,   626,
     627,   166,     0,   167,   168,   169,   628,   171,     0,   629,
     173,     0,   174,   175,   176,   177,   178,   179,   180,     0,
     181,   182,     0,   630,   184,     0,   185,   631,   632,   186,
       0,     0,   187,   633,   634,     0,   635,   636,     0,   188,
     189,   190,   637,   638,   639,     0,     0,     0,     0,   640,
     193,   641,     0,     0,   642,   194,     0,   195,     0,     0,
       0,   196,     0,   197,   198,   199,   200,     0,     0,     0,
     201,     0,     0,   202,   203,   204,     0,     0,     0,   205,
       0,   206,   207,     0,   208,   209,   210,     0,     0,   211,
       0,   212,   213,   214,   215,   216,   643,     0,   217,   218,
     219,   644,   645,   220,   221,     0,   222,   223,   224,   646,
       0,   225,     0,     0,     0,   226,   227,     0,   228,     0,
     229,     0,   647,   231,   648,   233,     0,   234,     0,   649,
       0,   235,   236,     0,   237,   650,     0,   238,   239,     0,
       0,     0,   651,   241,   242,   243,   652,     0,   244,   245,
       0,     0,   246,     0,   247,     0,     0,   653,   248,   249,
     654,     0,     0,   250,     0,   251,   252,     0,   253,   254,
       0,     0,     0,   255,     0,     0,   256,   257,     0,     0,
     258,     0,   655,   259,   260,     0,     0,     0,     0,     0,
     656,   262,     0,   263,     0,   264,     0,   265,   266,     0,
       0,   657,     0,     0,     0,     0,   267,   268,   269,   270,
     271,   272,   273,   274,   275,   276,   277,   278,   279,     0,
     280,   281,   658,   282,   283,   284,   285,   659,   286,   287,
     288,     0,     0,     0,   289,   290,   291,   660,   293,     0,
       0,   661,   295,   662,   296,     0,   297,   663,   664,   665,
     666,   667,   302,   303,   304,   305,     0,   668,   306,   307,
       0,     0,   308,   309,   310,   311,   669,   670,   671,   312,
     313,     0,   672,   673,     0,   314,   315,   674,     0,   317,
     318,   319,     0,   320,     0,     0,     0,     0,     0,     0,
       0,     0,     0,   321,   322,   323,   675,   324,   325,   326,
     327,   328,   676,   330,   331,   332,   677,   678,   335,   679,
       0,   336,   337,   338,     0,   339,     0,   340,   341,   342,
     343,     0,   680,   345,   346,     0,     0,   347,     0,     0,
       0,   348,   349,   350,   351,   352,     0,     0,   353,   354,
     355,     0,   356,   357,     0,   358,   359,   360,   681,   682,
     361,     0,   362,   363,   364,     0,   365,   366,     0,     0,
     683,   367,   368,   369,   370,   371,   684,   373,   374,   375,
       0,   685,   377,  1100,     0,     0,   378,   379,   380,   381,
       0,     0,     0,   382,     0,     0,     0,   383,   384,   385,
     386,     0,   387,   388,   389,   390,   391,     0,     0,     0,
       0,     0,     0,   392,   393,     0,   394,     0,     0,   395,
       0,     0,   396,   397,   398,   686,   687,   399,   400,     0,
     401,   688,   403,   404,   405,   689,   690,   406,   407,   408,
     409,   691,   410,   411,     0,     0,   412,   413,   414,     0,
     692,   415,   416,     0,   693,   694,   695,   696,     0,     0,
       0,     0,     0,   421,   422,     0,   697,   698,   699,   424,
     425,   426,   700,   427,   428,   701,   429,   430,     0,   431,
     432,     0,     0,   433,     0,     0,   434,     0,   435,     0,
     702,   437,     0,     0,   703,   704,   705,   706,   438,     0,
       0,   439,   707,     0,   708,   440,   441,   442,   709,     0,
       0,     0,     0,   444,   445,     0,   446,   447,     0,     0,
     710,     0,     0,     0,   711,   712,     0,     0,     0,     0,
     713,  1101,     0,     0,   715,   716,     0,     0,   717,   718,
     138,     0,   616,   140,   141,   142,   143,     0,     0,     0,
       0,     0,   144,     0,     0,   617,     0,   146,   147,   148,
     149,   150,   618,   152,     0,   153,     0,     0,   619,   154,
     620,   621,   622,   155,   623,     0,   156,   157,   158,     0,
     159,     0,   160,   161,     0,     0,   162,   624,   625,   163,
       0,   164,   626,   627,   166,     0,   167,   168,   169,   628,
     171,     0,   629,   173,     0,   174,   175,   176,   177,   178,
     179,   180,     0,   181,   182,     0,   630,   184,     0,   185,
     631,   632,   186,     0,     0,   187,   633,   634,     0,   635,
     636,     0,   188,   189,   190,   637,   638,   639,     0,     0,
       0,     0,   640,   193,   641,     0,     0,   642,   194,     0,
     195,     0,     0,     0,   196,     0,   197,   198,   199,   200,
       0,     0,     0,   201,     0,     0,   202,   203,   204,     0,
       0,     0,   205,     0,   206,   207,     0,   208,   209,   210,
       0,     0,   211,     0,   212,   213,   214,   215,   216,   643,
       0,   217,   218,   219,   644,   645,   220,   221,     0,   222,
     223,   224,   646,     0,   225,     0,     0,     0,   226,   227,
       0,   228,     0,   229,     0,   647,   231,   648,   233,     0,
     234,     0,   649,     0,   235,   236,     0,   237,   650,     0,
     238,   239,     0,     0,     0,   651,   241,   242,   243,   652,
       0,   244,   245,     0,     0,   246,     0,   247,     0,     0,
     653,   248,   249,   654,     0,     0,   250,     0,   251,   252,
       0,   253,   254,     0,     0,     0,   255,     0,     0,   256,
     257,     0,     0,   258,     0,   655,   259,   260,     0,     0,
       0,     0,     0,   656,   262,     0,   263,     0,   264,     0,
     265,   266,     0,     0,   657,     0,     0,     0,     0,   267,
     268,   269,   270,   271,   272,   273,   274,   275,   276,   277,
     278,   279,     0,   280,   281,   658,   282,   283,   284,   285,
     659,   286,   287,   288,     0,     0,     0,   289,   290,   291,
     660,   293,     0,     0,   661,   295,   662,   296,     0,   297,
     663,   664,   665,   666,   667,   302,   303,   304,   305,     0,
     668,   306,   307,     0,     0,   308,   309,   310,   311,   669,
     670,   671,   312,   313,     0,   672,   673,     0,   314,   315,
     674,     0,   317,   318,   319,     0,   320,     0,     0,     0,
       0,     0,     0,     0,     0,     0,   321,   322,   323,   675,
     324,   325,   326,   327,   328,   676,   330,   331,   332,   677,
     678,   335,   679,     0,   336,   337,   338,     0,   339,     0,
     340,   341,   342,   343,     0,   680,   345,   346,     0,     0,
     347,     0,     0,     0,   348,   349,   350,   351,   352,     0,
       0,   353,   354,   355,     0,   356,   357,     0,   358,   359,
     360,   681,   682,   361,     0,   362,   363,   364,     0,   365,
     366,     0,     0,   683,   367,   368,   369,   370,   371,   684,
     373,   374,   375,     0,   685,   377,     0,     0,     0,   378,
     379,   380,   381,     0,     0,     0,   382,     0,     0,     0,
     383,   384,   385,   386,     0,   387,   388,   389,   390,   391,
       0,     0,     0,     0,     0,     0,   392,   393,     0,   394,
       0,     0,   395,     0,     0,   396,   397,   398,   686,   687,
     399,   400,     0,   401,   688,   403,   404,   405,   689,   690,
     406,   407,   408,   409,   691,   410,   411,     0,     0,   412,
     413,   414,     0,   692,   415,   416,     0,   693,   694,   695,
     696,     0,     0,     0,     0,     0,   421,   422,     0,   697,
     698,   699,   424,   425,   426,   700,   427,   428,   701,   429,
     430,     0,   431,   432,     0,     0,   433,     0,     0,   434,
       0,   435,     0,   702,   437,     0,     0,   703,   704,   705,
     706,   438,     0,     0,   439,   707,     0,   708,   440,   441,
     442,   709,     0,     0,     0,     0,   444,   445,     0,   446,
     447,     0,     0,   710,     0,     0,     0,   711,   712,     0,
       0,     0,     0,   713,   714,  1464,     0,   715,   716,     0,
       0,   717,   718,   138,     0,   616,   140,   141,   142,   143,
       0,     0,     0,     0,     0,   144,     0,     0,   617,     0,
     146,   147,   148,   149,   150,   618,   152,     0,   153,     0,
       0,   619,   154,   620,   621,   622,   155,   623,     0,   156,
     157,   158,     0,   159,     0,   160,   161,     0,     0,   162,
     624,   625,   163,     0,   164,   626,   627,   166,     0,   167,
     168,   169,   628,   171,     0,   629,   173,     0,   174,   175,
     176,   177,   178,   179,   180,     0,   181,   182,     0,   630,
     184,     0,   185,   631,   632,   186,     0,     0,   187,   633,
     634,     0,   635,   636,     0,   188,   189,   190,   637,   638,
     639,     0,     0,     0,     0,   640,   193,   641,     0,     0,
     642,   194,     0,   195,     0,     0,     0,   196,     0,   197,
     198,   199,   200,     0,     0,     0,   201,     0,     0,   202,
     203,   204,     0,     0,     0,   205,     0,   206,   207,     0,
     208,   209,   210,     0,     0,   211,     0,   212,   213,   214,
     215,   216,   643,     0,   217,   218,   219,   644,   645,   220,
     221,     0,   222,   223,   224,   646,     0,   225,     0,     0,
       0,   226,   227,  2032,   228,     0,   229,     0,   647,   231,
     648,   233,     0,   234,     0,   649,     0,   235,   236,     0,
     237,   650,     0,   238,   239,     0,     0,     0,   651,   241,
     242,   243,   652,     0,   244,   245,     0,     0,   246,     0,
     247,     0,     0,   653,   248,   249,   654,     0,     0,   250,
       0,   251,   252,     0,   253,   254,     0,     0,     0,   255,
       0,     0,   256,   257,     0,     0,   258,     0,   655,   259,
     260,     0,     0,     0,     0,     0,   656,   262,     0,   263,
       0,   264,     0,   265,   266,     0,     0,   657,     0,     0,
       0,     0,   267,   268,   269,   270,   271,   272,   273,   274,
     275,   276,   277,   278,   279,     0,   280,   281,   658,   282,
     283,   284,   285,   659,   286,   287,   288,     0,     0,     0,
     289,   290,   291,   660,   293,     0,     0,   661,   295,   662,
     296,     0,   297,   663,   664,   665,   666,   667,   302,   303,
     304,   305,     0,   668,   306,   307,     0,     0,   308,   309,
     310,   311,   669,   670,   671,   312,   313,     0,   672,   673,
       0,   314,   315,   674,     0,   317,   318,   319,     0,   320,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   321,
     322,   323,   675,   324,   325,   326,   327,   328,   676,   330,
     331,   332,   677,   678,   335,   679,     0,   336,   337,   338,
       0,   339,     0,   340,   341,   342,   343,     0,   680,   345,
     346,     0,     0,   347,     0,     0,     0,   348,   349,   350,
     351,   352,     0,     0,   353,   354,   355,     0,   356,   357,
       0,   358,   359,   360,   681,   682,   361,     0,   362,   363,
     364,     0,   365,   366,     0,     0,   683,   367,   368,   369,
     370,   371,   684,   373,   374,   375,     0,   685,   377,     0,
       0,     0,   378,   379,   380,   381,     0,     0,     0,   382,
       0,     0,     0,   383,   384,   385,   386,     0,   387,   388,
     389,   390,   391,     0,     0,     0,     0,     0,     0,   392,
     393,     0,   394,     0,     0,   395,     0,     0,   396,   397,
     398,   686,   687,   399,   400,     0,   401,   688,   403,   404,
     405,   689,   690,   406,   407,   408,   409,   691,   410,   411,
       0,     0,   412,   413,   414,     0,   692,   415,   416,     0,
     693,   694,   695,   696,     0,     0,     0,     0,     0,   421,
     422,     0,   697,   698,   699,   424,   425,   426,   700,   427,
     428,   701,   429,   430,     0,   431,   432,     0,     0,   433,
       0,     0,   434,     0,   435,     0,   702,   437,     0,     0,
     703,   704,   705,   706,   438,     0,     0,   439,   707,     0,
     708,   440,   441,   442,   709,     0,     0,     0,     0,   444,
     445,     0,   446,   447,     0,     0,   710,     0,     0,     0,
     711,   712,     0,     0,     0,     0,   713,   714,     0,     0,
     715,   716,     0,     0,   717,   718,   138,     0,   616,   140,
     141,   142,   143,     0,     0,     0,     0,     0,   144,     0,
       0,   617,     0,   146,   147,   148,   149,   150,   618,   152,
       0,   153,     0,     0,   619,   154,   620,   621,   622,   155,
     623,     0,   156,   157,   158,     0,   159,     0,   160,   161,
       0,     0,   162,   624,   625,   163,     0,   164,   626,   627,
     166,     0,   167,   168,   169,   628,   171,     0,   629,   173,
       0,   174,   175,   176,   177,   178,   179,   180,     0,   181,
     182,     0,   630,   184,     0,   185,   631,   632,   186,     0,
       0,   187,   633,   634,     0,   635,   636,     0,   188,   189,
     190,   637,   638,   639,     0,     0,     0,     0,   640,   193,
     641,     0,     0,   642,   194,     0,   195,     0,     0,     0,
     196,     0,   197,   198,   199,   200,     0,     0,     0,   201,
       0,     0,   202,   203,   204,     0,     0,     0,   205,     0,
     206,   207,     0,   208,   209,   210,     0,     0,   211,     0,
     212,   213,   214,   215,   216,   643,     0,   217,   218,   219,
     644,   645,   220,   221,     0,   222,   223,   224,   646,     0,
     225,     0,     0,     0,   226,   227,  2034,   228,     0,   229,
       0,   647,   231,   648,   233,     0,   234,     0,   649,     0,
     235,   236,     0,   237,   650,     0,   238,   239,     0,     0,
       0,   651,   241,   242,   243,   652,     0,   244,   245,     0,
       0,   246,     0,   247,     0,     0,   653,   248,   249,   654,
       0,     0,   250,     0,   251,   252,     0,   253,   254,     0,
       0,     0,   255,     0,     0,   256,   257,     0,     0,   258,
       0,   655,   259,   260,     0,     0,     0,     0,     0,   656,
     262,     0,   263,     0,   264,     0,   265,   266,     0,     0,
     657,     0,     0,     0,     0,   267,   268,   269,   270,   271,
     272,   273,   274,   275,   276,   277,   278,   279,     0,   280,
     281,   658,   282,   283,   284,   285,   659,   286,   287,   288,
       0,     0,     0,   289,   290,   291,   660,   293,     0,     0,
     661,   295,   662,   296,     0,   297,   663,   664,   665,   666,
     667,   302,   303,   304,   305,     0,   668,   306,   307,     0,
       0,   308,   309,   310,   311,   669,   670,   671,   312,   313,
       0,   672,   673,     0,   314,   315,   674,     0,   317,   318,
     319,     0,   320,     0,     0,     0,     0,     0,     0,     0,
       0,     0,   321,   322,   323,   675,   324,   325,   326,   327,
     328,   676,   330,   331,   332,   677,   678,   335,   679,     0,
     336,   337,   338,     0,   339,     0,   340,   341,   342,   343,
       0,   680,   345,   346,     0,     0,   347,     0,     0,     0,
     348,   349,   350,   351,   352,     0,     0,   353,   354,   355,
       0,   356,   357,     0,   358,   359,   360,   681,   682,   361,
       0,   362,   363,   364,     0,   365,   366,     0,     0,   683,
     367,   368,   369,   370,   371,   684,   373,   374,   375,     0,
     685,   377,     0,     0,     0,   378,   379,   380,   381,     0,
       0,     0,   382,     0,     0,     0,   383,   384,   385,   386,
       0,   387,   388,   389,   390,   391,     0,     0,     0,     0,
       0,     0,   392,   393,     0,   394,     0,     0,   395,     0,
       0,   396,   397,   398,   686,   687,   399,   400,     0,   401,
     688,   403,   404,   405,   689,   690,   406,   407,   408,   409,
     691,   410,   411,     0,     0,   412,   413,   414,     0,   692,
     415,   416,     0,   693,   694,   695,   696,     0,     0,     0,
       0,     0,   421,   422,     0,   697,   698,   699,   424,   425,
     426,   700,   427,   428,   701,   429,   430,     0,   431,   432,
       0,     0,   433,     0,     0,   434,     0,   435,     0,   702,
     437,     0,     0,   703,   704,   705,   706,   438,     0,     0,
     439,   707,     0,   708,   440,   441,   442,   709,     0,     0,
       0,     0,   444,   445,     0,   446,   447,     0,     0,   710,
       0,     0,     0,   711,   712,     0,     0,     0,     0,   713,
     714,     0,     0,   715,   716,     0,     0,   717,   718,   138,
       0,   616,   140,   141,   142,   143,     0,     0,     0,     0,
       0,   144,     0,     0,   617,     0,   146,   147,   148,   149,
     150,   618,   152,     0,   153,     0,     0,   619,   154,   620,
     621,   622,   155,   623,     0,   156,   157,   158,     0,   159,
       0,   160,   161,     0,     0,   162,   624,   625,   163,     0,
     164,   626,   627,   166,     0,   167,   168,   169,   628,   171,
       0,   629,   173,     0,   174,   175,   176,   177,   178,   179,
     180,     0,   181,   182,     0,   630,   184,     0,   185,   631,
     632,   186,     0,     0,   187,   633,   634,     0,   635,   636,
       0,   188,   189,   190,   637,   638,   639,     0,     0,     0,
       0,   640,   193,   641,     0,     0,   642,   194,     0,   195,
       0,     0,     0,   196,     0,   197,   198,   199,   200,     0,
       0,     0,   201,     0,     0,   202,   203,   204,     0,     0,
       0,   205,     0,   206,   207,     0,   208,   209,   210,     0,
       0,   211,     0,   212,   213,   214,   215,   216,   643,     0,
     217,   218,   219,   644,   645,   220,   221,     0,   222,   223,
     224,   646,     0,   225,     0,     0,     0,   226,   227,  2036,
     228,     0,   229,     0,   647,   231,   648,   233,     0,   234,
       0,   649,     0,   235,   236,     0,   237,   650,     0,   238,
     239,     0,     0,     0,   651,   241,   242,   243,   652,     0,
     244,   245,     0,     0,   246,     0,   247,     0,     0,   653,
     248,   249,   654,     0,     0,   250,     0,   251,   252,     0,
     253,   254,     0,     0,     0,   255,     0,     0,   256,   257,
       0,     0,   258,     0,   655,   259,   260,     0,     0,     0,
       0,     0,   656,   262,     0,   263,     0,   264,     0,   265,
     266,     0,     0,   657,     0,     0,     0,     0,   267,   268,
     269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
     279,     0,   280,   281,   658,   282,   283,   284,   285,   659,
     286,   287,   288,     0,     0,     0,   289,   290,   291,   660,
     293,     0,     0,   661,   295,   662,   296,     0,   297,   663,
     664,   665,   666,   667,   302,   303,   304,   305,     0,   668,
     306,   307,     0,     0,   308,   309,   310,   311,   669,   670,
     671,   312,   313,     0,   672,   673,     0,   314,   315,   674,
       0,   317,   318,   319,     0,   320,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   321,   322,   323,   675,   324,
     325,   326,   327,   328,   676,   330,   331,   332,   677,   678,
     335,   679,     0,   336,   337,   338,     0,   339,     0,   340,
     341,   342,   343,     0,   680,   345,   346,     0,     0,   347,
       0,     0,     0,   348,   349,   350,   351,   352,     0,     0,
     353,   354,   355,     0,   356,   357,     0,   358,   359,   360,
     681,   682,   361,     0,   362,   363,   364,     0,   365,   366,
       0,     0,   683,   367,   368,   369,   370,   371,   684,   373,
     374,   375,     0,   685,   377,     0,     0,     0,   378,   379,
     380,   381,     0,     0,     0,   382,     0,     0,     0,   383,
     384,   385,   386,     0,   387,   388,   389,   390,   391,     0,
       0,     0,     0,     0,     0,   392,   393,     0,   394,     0,
       0,   395,     0,     0,   396,   397,   398,   686,   687,   399,
     400,     0,   401,   688,   403,   404,   405,   689,   690,   406,
     407,   408,   409,   691,   410,   411,     0,     0,   412,   413,
     414,     0,   692,   415,   416,     0,   693,   694,   695,   696,
       0,     0,     0,     0,     0,   421,   422,     0,   697,   698,
     699,   424,   425,   426,   700,   427,   428,   701,   429,   430,
       0,   431,   432,     0,     0,   433,     0,     0,   434,     0,
     435,     0,   702,   437,     0,     0,   703,   704,   705,   706,
     438,     0,     0,   439,   707,     0,   708,   440,   441,   442,
     709,     0,     0,     0,     0,   444,   445,     0,   446,   447,
       0,     0,   710,     0,     0,     0,   711,   712,     0,     0,
       0,     0,   713,   714,     0,     0,   715,   716,     0,     0,
     717,   718,   138,     0,   616,   140,   141,   142,   143,     0,
       0,     0,     0,     0,   144,     0,     0,   617,     0,   146,
     147,   148,   149,   150,   618,   152,     0,   153,     0,     0,
     619,   154,   620,   621,   622,   155,   623,     0,   156,   157,
     158,     0,   159,     0,   160,   161,     0,     0,   162,   624,
     625,   163,     0,   164,   626,   627,   166,     0,   167,   168,
     169,   628,   171,     0,   629,   173,     0,   174,   175,   176,
     177,   178,   179,   180,     0,   181,   182,     0,   630,   184,
       0,   185,   631,   632,   186,     0,     0,   187,   633,   634,
       0,   635,   636,     0,   188,   189,   190,   637,   638,   639,
       0,     0,     0,     0,   640,   193,   641,     0,     0,   642,
     194,     0,   195,     0,     0,     0,   196,     0,   197,   198,
     199,   200,     0,     0,     0,   201,     0,     0,   202,   203,
     204,     0,     0,     0,   205,     0,   206,   207,     0,   208,
     209,   210,     0,     0,   211,     0,   212,   213,   214,   215,
     216,   643,     0,   217,   218,   219,   644,   645,   220,   221,
       0,   222,   223,   224,   646,     0,   225,     0,     0,     0,
     226,   227,     0,   228,     0,   229,     0,   647,   231,   648,
     233,     0,   234,     0,   649,     0,   235,   236,     0,   237,
     650,     0,   238,   239,     0,     0,     0,   651,   241,   242,
     243,   652,     0,   244,   245,     0,     0,   246,     0,   247,
       0,     0,   653,   248,   249,   654,     0,     0,   250,     0,
     251,   252,     0,   253,   254,     0,     0,     0,   255,     0,
       0,   256,   257,     0,     0,   258,     0,   655,   259,   260,
       0,     0,     0,     0,     0,   656,   262,     0,   263,     0,
     264,     0,   265,   266,     0,     0,   657,     0,     0,     0,
       0,   267,   268,   269,   270,   271,   272,   273,   274,   275,
     276,   277,   278,   279,     0,   280,   281,   658,   282,   283,
     284,   285,   659,   286,   287,   288,     0,     0,     0,   289,
     290,   291,   660,   293,     0,     0,   661,   295,   662,   296,
       0,   297,   663,   664,   665,   666,   667,   302,   303,   304,
     305,     0,   668,   306,   307,     0,     0,   308,   309,   310,
     311,   669,   670,   671,   312,   313,     0,   672,   673,     0,
     314,   315,   674,     0,   317,   318,   319,     0,   320,     0,
       0,     0,     0,     0,     0,     0,     0,     0,   321,   322,
     323,   675,   324,   325,   326,   327,   328,   676,   330,   331,
     332,   677,   678,   335,   679,     0,   336,   337,   338,     0,
     339,     0,   340,   341,   342,   343,     0,   680,   345,   346,
       0,     0,   347,     0,     0,     0,   348,   349,   350,   351,
     352,     0,     0,   353,   354,   355,     0,   356,   357,     0,
     358,   359,   360,   681,   682,   361,     0,   362,   363,   364,
       0,   365,   366,     0,     0,   683,   367,   368,   369,   370,
     371,   684,   373,   374,   375,     0,   685,   377,     0,     0,
       0,   378,   379,   380,   381,     0,     0,     0,   382,     0,
       0,     0,   383,   384,   385,   386,     0,   387,   388,   389,
     390,   391,     0,     0,     0,     0,     0,     0,   392,   393,
       0,   394,     0,     0,   395,     0,     0,   396,   397,   398,
     686,   687,   399,   400,     0,   401,   688,   403,   404,   405,
     689,   690,   406,   407,   408,   409,   691,   410,   411,     0,
       0,   412,   413,   414,     0,   692,   415,   416,     0,   693,
     694,   695,   696,     0,     0,     0,     0,     0,   421,   422,
       0,   697,   698,   699,   424,   425,   426,   700,   427,   428,
     701,   429,   430,     0,   431,   432,     0,     0,   433,     0,
       0,   434,     0,   435,     0,   702,   437,     0,     0,   703,
     704,   705,   706,   438,     0,     0,   439,   707,     0,   708,
     440,   441,   442,   709,     0,     0,     0,     0,   444,   445,
       0,   446,   447,     0,     0,   710,     0,     0,     0,   711,
     712,     0,     0,     0,     0,   713,   714,     0,     0,   715,
     716,     0,     0,   717,   718,   138,     0,   616,   140,   141,
     142,   143,     0,     0,     0,     0,     0,   144,     0,     0,
     617,     0,   146,   147,   148,   149,   150,   618,   152,     0,
     153,     0,     0,   619,   154,   620,   621,   622,   155,   623,
       0,   156,   157,   158,     0,   159,     0,   160,   161,     0,
       0,   162,   624,   625,   163,     0,   164,   626,   627,   166,
       0,   167,   168,   169,   628,   171,     0,   629,   173,     0,
     174,   175,   176,   177,   178,   179,   180,     0,   181,   182,
       0,   630,   184,     0,   185,   631,   632,   186,     0,     0,
     187,   633,   634,     0,   635,   636,     0,   188,   189,   190,
     637,   638,   639,     0,     0,     0,     0,   640,   193,   641,
       0,     0,   642,   194,     0,   195,     0,     0,     0,   196,
       0,   197,   198,   199,   200,     0,     0,     0,   201,     0,
       0,   202,   203,   204,     0,     0,     0,   205,     0,   206,
     207,     0,   208,   209,   210,     0,     0,   211,     0,   212,
     213,   214,   215,   216,   643,     0,   217,   218,   219,   644,
     645,   220,   221,     0,   222,   223,   224,   646,     0,   225,
       0,     0,     0,   226,   227,     0,   228,     0,   229,     0,
     647,   231,   648,   233,     0,   234,     0,   649,     0,   235,
     236,     0,   237,   650,     0,   238,   239,     0,     0,     0,
     651,   241,   242,   243,   652,     0,   244,   245,     0,     0,
     246,     0,   247,     0,     0,   653,   248,   249,   654,     0,
       0,   250,     0,   251,   252,     0,   253,   254,     0,     0,
       0,   255,     0,     0,   256,   257,     0,     0,   258,     0,
     655,   259,   260,     0,     0,     0,     0,     0,   656,   262,
       0,   263,     0,   264,     0,   265,   266,     0,     0,   657,
       0,     0,     0,     0,   267,   268,   269,   270,   271,   272,
     273,   274,   275,   276,   277,   278,   279,     0,   280,   281,
     658,   282,   283,   284,   285,   659,   286,   287,   288,     0,
       0,     0,   289,   290,   291,   660,   293,     0,     0,   661,
     295,   662,   296,     0,   297,   663,   664,   665,   666,   667,
     302,   303,   304,   305,     0,   668,   306,   307,     0,     0,
     308,   309,   310,   311,   669,   670,   671,   312,   313,     0,
     672,   673,     0,   314,   315,   674,     0,   317,   318,   319,
       0,   320,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   321,   322,   323,   675,   324,   325,   326,   327,   328,
     676,   330,   331,   332,   677,   678,   335,   679,     0,   336,
     337,   338,     0,   339,     0,   340,   341,   342,   343,     0,
     680,   345,   346,     0,     0,   347,     0,     0,     0,   348,
     349,   350,   351,   352,     0,     0,   353,   354,   355,     0,
     356,   357,     0,   358,   359,   360,   681,   682,   361,     0,
     362,   363,   364,     0,   365,   366,     0,     0,   683,   367,
     368,   369,   370,   371,   684,   373,   374,   375,     0,   685,
     377,     0,     0,     0,   378,   379,   380,   381,     0,     0,
       0,   382,     0,     0,     0,   383,   384,   385,   386,     0,
     387,   388,   389,   390,   391,     0,     0,     0,     0,     0,
       0,   392,   393,     0,   394,     0,     0,   395,     0,     0,
     396,   397,   398,   686,   687,   399,   400,     0,   401,   688,
     403,   404,   405,   689,   690,   406,   407,   408,   409,   691,
     410,   411,     0,     0,   412,   413,   414,     0,   692,   415,
     416,     0,   693,   694,   695,   696,     0,     0,     0,     0,
       0,   421,   422,     0,   697,   698,   699,   424,   425,   426,
     700,   427,   428,   701,   429,   430,     0,   431,   432,     0,
       0,   433,     0,     0,   434,     0,   435,     0,   702,   437,
       0,     0,   703,   704,   705,   706,   438,     0,     0,   439,
     707,     0,   708,   440,   441,   442,   709,     0,     0,     0,
       0,   444,   445,     0,   446,   447,     0,     0,   710,     0,
       0,     0,   711,   712,     0,     0,     0,     0,   713,  1038,
       0,     0,   715,   716,     0,     0,   717,   718,   138,     0,
     616,   140,   141,   142,   143,  1583,     0,     0,     0,     0,
    1584,     0,     0,   617,     0,   146,   147,   148,   149,   150,
     618,   152,     0,   153,     0,     0,   619,   154,   620,   621,
     622,   155,   623,     0,   156,   157,   158,     0,   159,     0,
     160,   161,     0,     0,   162,   624,   625,   163,     0,   164,
     626,   627,   166,     0,   167,   168,   169,   628,   171,     0,
     629,   173,     0,   174,   175,   176,   177,   178,   179,   180,
       0,   181,   182,     0,   630,   184,     0,   185,   631,   632,
     186,     0,     0,   187,   633,   634,     0,   635,   636,     0,
     188,   189,   190,   637,   638,   639,     0,     0,     0,     0,
     640,   193,   641,     0,     0,   642,   194,     0,   195,     0,
       0,     0,   196,     0,   197,   198,   199,   200,     0,     0,
       0,   201,     0,     0,   202,   203,   204,     0,     0,     0,
     205,     0,   206,   207,     0,   208,   209,   210,     0,     0,
     211,     0,   212,   213,   214,   215,   216,   643,     0,   217,
     218,   219,   644,   645,   220,   221,     0,   222,   223,   224,
     646,     0,   225,     0,     0,     0,   226,   227,     0,   228,
       0,   229,     0,   647,   231,   648,   233,     0,   234,     0,
     649,     0,   235,   236,     0,   237,   650,     0,   238,   239,
       0,     0,     0,   651,   241,   242,   243,   652,     0,   244,
     245,     0,     0,   246,     0,   247,     0,     0,   653,   248,
     249,   654,     0,     0,   250,     0,   251,   252,     0,   253,
     254,     0,     0,     0,   255,     0,     0,   256,   257,     0,
       0,   258,     0,   655,   259,   260,     0,     0,     0,     0,
       0,   656,   262,     0,   263,     0,   264,     0,   265,   266,
       0,     0,   657,     0,     0,     0,     0,   267,   268,   269,
     270,   271,   272,   273,   274,   275,   276,   277,   278,   279,
       0,   280,   281,   658,   282,   283,   284,   285,   659,   286,
     287,   288,     0,     0,     0,   289,   290,   291,   660,   293,
       0,     0,   661,   295,   662,   296,     0,   297,   663,   664,
     665,   666,   667,   302,   303,   304,   305,     0,   668,   306,
     307,     0,     0,   308,   309,   310,   311,   669,     0,   671,
     312,   313,     0,   672,   673,     0,   314,   315,   674,     0,
     317,   318,   319,     0,   320,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   321,   322,   323,   675,   324,   325,
     326,   327,   328,   676,   330,   331,   332,   677,   678,   335,
     679,     0,   336,   337,   338,     0,   339,     0,   340,   341,
     342,   343,     0,   680,   345,   346,     0,     0,   347,     0,
       0,     0,   348,   349,   350,   351,   352,     0,     0,   353,
     354,   355,     0,   356,   357,     0,   358,   359,   360,   681,
     682,   361,     0,   362,   363,   364,     0,   365,   366,     0,
       0,   683,   367,   368,   369,   370,   371,   684,   373,   374,
     375,     0,   685,   377,     0,     0,     0,   378,   379,   380,
     381,     0,     0,     0,   382,     0,     0,     0,   383,   384,
     385,   386,     0,   387,   388,   389,   390,   391,     0,     0,
       0,     0,     0,     0,   392,   393,     0,   394,     0,     0,
     395,     0,     0,   396,   397,   398,   686,   687,   399,   400,
       0,   401,   688,   403,   404,   405,   689,   690,   406,   407,
     408,   409,   691,   410,   411,     0,     0,   412,   413,   414,
       0,   692,   415,   416,     0,   693,   694,   695,   696,     0,
       0,     0,     0,     0,   421,   422,     0,   697,   698,   699,
     424,   425,   426,   700,   427,   428,   701,   429,   430,     0,
     431,   432,     0,     0,   433,     0,     0,   434,     0,   435,
       0,   702,   437,     0,     0,   703,   704,   705,   706,   438,
       0,     0,   439,   707,     0,   708,   440,   441,   442,   709,
       0,     0,     0,     0,   444,   445,     0,   446,   447,     0,
       0,   710,     0,     0,     0,   711,   712,     0,     0,     0,
       0,   713,   714,     0,     0,   715,   716,     0,     0,   717,
     718,   138,     0,   616,   140,   141,   142,   143,     0,     0,
       0,     0,     0,   144,     0,     0,   617,     0,   146,   147,
     148,   149,   150,   618,   152,     0,   153,     0,     0,   619,
     154,   620,   621,   622,   155,   623,     0,   156,   157,   158,
       0,   159,     0,   160,   161,     0,     0,   162,   624,   625,
     163,     0,   164,   626,   627,   166,     0,   167,   168,   169,
     628,   171,     0,   629,   173,     0,   174,   175,   176,   177,
     178,   179,   180,     0,   181,   182,     0,   630,   184,     0,
     185,   631,   632,   186,     0,     0,   187,   633,   634,     0,
     635,   636,     0,   188,   189,   190,   637,   638,   639,     0,
       0,     0,     0,   640,   193,   641,     0,     0,   642,   194,
       0,   195,     0,     0,     0,   196,     0,   197,   198,   199,
     200,     0,     0,     0,   201,     0,     0,   202,   203,   204,
       0,     0,     0,   205,     0,   206,   207,     0,   208,   209,
     210,     0,     0,   211,     0,   212,   213,   214,   215,   216,
     643,     0,   217,   218,   219,   644,   645,   220,   221,     0,
     222,   223,   224,   646,     0,   225,     0,     0,     0,   226,
     227,     0,   228,     0,   229,     0,   647,   231,   648,   233,
       0,   234,     0,   649,     0,   235,   236,     0,   237,   650,
       0,   238,   239,     0,     0,     0,   651,   241,   242,   243,
     652,     0,   244,   245,     0,     0,   246,     0,   247,     0,
       0,   653,   248,   249,  2423,     0,     0,   250,     0,   251,
     252,     0,   253,   254,     0,     0,     0,   255,     0,     0,
     256,   257,     0,     0,   258,     0,   655,   259,   260,     0,
       0,     0,     0,     0,   656,   262,     0,   263,     0,   264,
       0,   265,   266,     0,     0,   657,     0,     0,     0,     0,
     267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
     277,   278,   279,     0,   280,   281,   658,   282,   283,   284,
     285,   659,   286,   287,   288,     0,     0,     0,   289,   290,
     291,   660,   293,     0,     0,   661,   295,   662,   296,     0,
     297,   663,   664,   665,   666,   667,   302,   303,   304,   305,
       0,   668,   306,   307,     0,     0,   308,   309,   310,   311,
     669,   670,   671,   312,   313,     0,   672,   673,     0,   314,
     315,   674,     0,   317,   318,   319,     0,   320,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   321,   322,   323,
     675,   324,   325,   326,   327,   328,   676,   330,   331,   332,
     677,   678,   335,   679,     0,   336,   337,   338,     0,   339,
       0,   340,   341,   342,   343,     0,   680,   345,   346,     0,
       0,   347,     0,     0,     0,   348,   349,   350,   351,   352,
       0,     0,   353,   354,   355,     0,   356,   357,     0,   358,
     359,   360,   681,   682,   361,     0,   362,   363,   364,     0,
     365,   366,     0,     0,   683,   367,   368,   369,   370,   371,
     684,   373,   374,   375,     0,   685,   377,     0,     0,     0,
     378,   379,   380,   381,     0,     0,     0,   382,     0,     0,
       0,   383,   384,   385,   386,     0,   387,   388,   389,   390,
     391,     0,     0,     0,     0,     0,     0,   392,   393,     0,
     394,     0,     0,   395,     0,     0,   396,   397,   398,   686,
     687,   399,   400,     0,   401,   688,   403,   404,   405,   689,
     690,   406,   407,   408,   409,   691,   410,   411,     0,     0,
     412,   413,   414,     0,   692,   415,   416,     0,   693,   694,
     695,   696,     0,     0,     0,     0,     0,   421,   422,     0,
     697,   698,   699,   424,   425,   426,   700,   427,   428,   701,
     429,   430,     0,   431,   432,     0,     0,   433,     0,     0,
     434,     0,   435,     0,   702,   437,     0,     0,   703,   704,
     705,   706,   438,     0,     0,   439,   707,     0,   708,   440,
     441,   442,   709,     0,     0,     0,     0,   444,   445,     0,
     446,   447,     0,     0,   710,     0,     0,     0,   711,   712,
       0,     0,     0,     0,   713,   714,     0,     0,   715,   716,
       0,     0,   717,   718,   138,     0,   616,   140,   141,   142,
     143,     0,     0,     0,     0,     0,   144,     0,     0,   617,
       0,   146,   147,   148,   149,   150,   618,   152,     0,   153,
       0,     0,   619,   154,   620,   621,   622,   155,   623,     0,
     156,   157,   158,     0,   159,     0,   160,   161,     0,     0,
     162,   624,   625,   163,     0,   164,   626,   627,   166,     0,
     167,   168,   169,   628,   171,     0,   629,   173,     0,   174,
     175,   176,   177,   178,   179,   180,     0,   181,   182,     0,
     630,   184,     0,   185,   631,   632,   186,     0,     0,   187,
     633,   634,     0,   635,   636,     0,   188,   189,   190,   637,
     638,   639,     0,     0,     0,     0,   640,   193,   641,     0,
       0,   642,   194,     0,   195,     0,     0,     0,   196,     0,
     197,   198,   199,   200,     0,     0,     0,   201,     0,     0,
     202,   203,   204,     0,     0,     0,   205,     0,   206,   207,
       0,   208,   209,   210,     0,     0,   211,     0,   212,   213,
     214,   215,   216,   643,     0,   217,   218,   219,   644,   645,
     220,   221,     0,   222,   223,   224,   646,     0,   225,     0,
       0,     0,   226,   227,     0,   228,     0,   229,     0,   647,
     231,   648,   233,     0,   234,     0,   649,     0,   235,   236,
       0,   237,   650,     0,   238,   239,     0,     0,     0,   651,
     241,   242,   243,   652,     0,   244,   245,     0,     0,   246,
       0,   247,     0,     0,   653,   248,   249,  2469,     0,     0,
     250,     0,   251,   252,     0,   253,   254,     0,     0,     0,
     255,     0,     0,   256,   257,     0,     0,   258,     0,   655,
     259,   260,     0,     0,     0,     0,     0,   656,   262,     0,
     263,     0,   264,     0,   265,   266,     0,     0,   657,     0,
       0,     0,     0,   267,   268,   269,   270,   271,   272,   273,
     274,   275,   276,   277,   278,   279,     0,   280,   281,   658,
     282,   283,   284,   285,   659,   286,   287,   288,     0,     0,
       0,   289,   290,   291,   660,   293,     0,     0,   661,   295,
     662,   296,     0,   297,   663,   664,   665,   666,   667,   302,
     303,   304,   305,     0,   668,   306,   307,     0,     0,   308,
     309,   310,   311,   669,   670,   671,   312,   313,     0,   672,
     673,     0,   314,   315,   674,     0,   317,   318,   319,     0,
     320,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     321,   322,   323,   675,   324,   325,   326,   327,   328,   676,
     330,   331,   332,   677,   678,   335,   679,     0,   336,   337,
     338,     0,   339,     0,   340,   341,   342,   343,     0,   680,
     345,   346,     0,     0,   347,     0,     0,     0,   348,   349,
     350,   351,   352,     0,     0,   353,   354,   355,     0,   356,
     357,     0,   358,   359,   360,   681,   682,   361,     0,   362,
     363,   364,     0,   365,   366,     0,     0,   683,   367,   368,
     369,   370,   371,   684,   373,   374,   375,     0,   685,   377,
       0,     0,     0,   378,   379,   380,   381,     0,     0,     0,
     382,     0,     0,     0,   383,   384,   385,   386,     0,   387,
     388,   389,   390,   391,     0,     0,     0,     0,     0,     0,
     392,   393,     0,   394,     0,     0,   395,     0,     0,   396,
     397,   398,   686,   687,   399,   400,     0,   401,   688,   403,
     404,   405,   689,   690,   406,   407,   408,   409,   691,   410,
     411,     0,     0,   412,   413,   414,     0,   692,   415,   416,
       0,   693,   694,   695,   696,     0,     0,     0,     0,     0,
     421,   422,     0,   697,   698,   699,   424,   425,   426,   700,
     427,   428,   701,   429,   430,     0,   431,   432,     0,     0,
     433,     0,     0,   434,     0,   435,     0,   702,   437,     0,
       0,   703,   704,   705,   706,   438,     0,     0,   439,   707,
       0,   708,   440,   441,   442,   709,     0,     0,     0,     0,
     444,   445,     0,   446,   447,     0,     0,   710,     0,     0,
       0,   711,   712,     0,     0,     0,     0,   713,   714,     0,
       0,   715,   716,     0,     0,   717,   718,   138,     0,   616,
     140,   141,   142,   143,     0,     0,     0,     0,     0,   144,
       0,     0,   617,     0,   146,   147,   148,   149,   150,   618,
     152,     0,   153,     0,     0,   619,   154,   620,   621,   622,
     155,   623,     0,   156,   157,   158,     0,   159,     0,   160,
     161,     0,     0,   162,   624,   625,   163,     0,   164,   626,
     627,   166,     0,   167,   168,   169,   628,   171,     0,   629,
     173,     0,   174,   175,   176,   177,   178,   179,   180,     0,
     181,   182,     0,   630,   184,     0,   185,   631,   632,   186,
       0,     0,   187,   633,   634,     0,   635,   636,     0,   188,
     189,   190,   637,   638,   639,     0,     0,     0,     0,   640,
     193,   641,     0,     0,  3133,   194,     0,   195,     0,     0,
       0,   196,     0,   197,   198,   199,   200,     0,     0,     0,
     201,     0,     0,   202,   203,   204,     0,     0,     0,   205,
       0,   206,   207,     0,   208,   209,   210,     0,     0,   211,
       0,   212,   213,   214,   215,   216,   643,     0,   217,   218,
     219,   644,   645,   220,   221,     0,   222,   223,   224,   646,
       0,   225,     0,     0,     0,   226,   227,     0,   228,     0,
     229,     0,   647,   231,   648,   233,     0,   234,     0,   649,
       0,   235,   236,     0,   237,   650,     0,   238,   239,     0,
       0,     0,   651,   241,   242,   243,   652,     0,   244,   245,
       0,     0,   246,     0,   247,     0,     0,   653,   248,   249,
     654,     0,     0,   250,     0,   251,   252,     0,   253,   254,
       0,     0,     0,   255,     0,     0,   256,   257,     0,     0,
     258,     0,   655,   259,   260,     0,     0,     0,     0,     0,
     656,   262,     0,   263,     0,   264,     0,   265,   266,     0,
       0,   657,     0,     0,     0,     0,   267,   268,   269,   270,
     271,   272,   273,   274,   275,   276,   277,   278,   279,     0,
     280,   281,   658,   282,   283,   284,   285,   659,   286,   287,
     288,     0,     0,     0,   289,   290,   291,   660,   293,     0,
       0,   661,   295,   662,   296,     0,   297,   663,   664,   665,
     666,   667,   302,   303,   304,   305,     0,   668,   306,   307,
       0,     0,   308,   309,   310,   311,   669,   670,   671,   312,
     313,     0,   672,   673,     0,   314,   315,   674,     0,   317,
     318,   319,     0,   320,     0,     0,     0,     0,     0,     0,
       0,     0,     0,   321,   322,   323,   675,   324,   325,   326,
     327,   328,   676,   330,   331,   332,   677,   678,   335,   679,
       0,   336,   337,   338,     0,   339,     0,   340,   341,   342,
     343,     0,   680,   345,   346,     0,     0,   347,     0,     0,
       0,   348,   349,   350,   351,   352,     0,     0,   353,   354,
     355,     0,   356,   357,     0,   358,   359,   360,   681,   682,
     361,     0,   362,   363,   364,     0,   365,   366,     0,     0,
     683,   367,   368,   369,   370,   371,   684,   373,   374,   375,
       0,   685,   377,     0,     0,     0,   378,   379,   380,   381,
       0,     0,     0,   382,     0,     0,     0,   383,   384,   385,
     386,     0,   387,   388,   389,   390,   391,     0,     0,     0,
       0,     0,     0,   392,   393,     0,   394,     0,     0,   395,
       0,     0,   396,   397,   398,   686,   687,   399,   400,     0,
     401,   688,   403,   404,   405,   689,   690,   406,   407,   408,
     409,   691,   410,   411,     0,     0,   412,   413,   414,     0,
     692,   415,   416,     0,   693,   694,   695,   696,     0,     0,
       0,     0,     0,   421,   422,     0,   697,   698,   699,   424,
     425,   426,   700,   427,   428,   701,   429,   430,     0,   431,
     432,     0,     0,   433,     0,     0,   434,     0,   435,     0,
     702,   437,     0,     0,   703,   704,   705,   706,   438,     0,
       0,   439,   707,     0,   708,   440,   441,   442,   709,     0,
       0,     0,     0,   444,   445,     0,   446,   447,     0,     0,
     710,     0,     0,     0,   711,   712,     0,     0,     0,     0,
     713,   714,     0,     0,   715,   716,     0,     0,   717,   718,
     138,     0,   616,   140,   141,   142,   143,     0,     0,     0,
       0,     0,   144,     0,     0,   617,     0,   146,   147,   148,
     149,   150,   618,   152,     0,   153,     0,     0,   619,   154,
     620,   621,   622,   155,   623,     0,   156,   157,   158,     0,
     159,     0,   160,   161,     0,     0,   162,   624,   625,   163,
       0,   164,   626,   627,   166,     0,   167,   168,   169,   628,
     171,     0,   629,   173,     0,   174,   175,   176,   177,   178,
     179,   180,     0,   181,   182,     0,   630,   184,     0,   185,
     631,   632,   186,     0,     0,   187,   633,   634,     0,   635,
     636,     0,   188,   189,   190,   637,   638,   639,     0,     0,
       0,     0,   640,   193,   641,     0,     0,   642,   194,     0,
     195,     0,     0,     0,   196,     0,   197,   198,   199,   200,
       0,     0,     0,   201,     0,     0,   202,   203,   204,     0,
       0,     0,   205,     0,   206,   207,     0,   208,   209,   210,
       0,     0,   211,     0,   212,   213,   214,   215,   216,   643,
       0,   217,   218,   219,   644,   645,   220,   221,     0,   222,
     223,   224,   646,     0,   225,     0,     0,     0,   226,   227,
       0,   228,     0,   229,     0,   647,   231,   648,   233,     0,
     234,     0,   649,     0,   235,   236,     0,   237,   650,     0,
     238,   239,     0,     0,     0,   651,   241,   242,   243,   652,
       0,   244,   245,     0,     0,   246,     0,   247,     0,     0,
     653,   248,   249,   654,     0,     0,   250,     0,   251,   252,
       0,   253,   254,     0,     0,     0,   255,     0,     0,   256,
     257,     0,     0,   258,     0,   655,   259,   260,     0,     0,
       0,     0,     0,   656,   262,     0,   263,     0,   264,     0,
     265,   266,     0,     0,   657,     0,     0,     0,     0,   267,
     268,   269,   270,   271,   272,   273,   274,   275,   276,   277,
     278,   279,     0,   280,   281,   658,   282,   283,   284,   285,
     659,   286,   287,   288,     0,     0,     0,   289,   290,   291,
     660,   293,     0,     0,   661,   295,   662,   296,     0,   297,
     663,   664,   665,   666,   667,   302,   303,   304,   305,     0,
     668,   306,   307,     0,     0,   308,   309,   310,   311,   669,
       0,   671,   312,   313,     0,   672,   673,     0,   314,   315,
     674,     0,   317,   318,   319,     0,   320,     0,     0,     0,
       0,     0,     0,     0,     0,     0,   321,   322,   323,   675,
     324,   325,   326,   327,   328,   676,   330,   331,   332,   677,
     678,   335,   679,     0,   336,   337,   338,     0,   339,     0,
     340,   341,   342,   343,     0,   680,   345,   346,     0,     0,
     347,     0,     0,     0,   348,   349,   350,   351,   352,     0,
       0,   353,   354,   355,     0,   356,   357,     0,   358,   359,
     360,   681,   682,   361,     0,   362,   363,   364,     0,   365,
     366,     0,     0,   683,   367,   368,   369,   370,   371,   684,
     373,   374,   375,     0,   685,   377,     0,     0,     0,   378,
     379,   380,   381,     0,     0,     0,   382,     0,     0,     0,
     383,   384,   385,   386,     0,   387,   388,   389,   390,   391,
       0,     0,     0,     0,     0,     0,   392,   393,     0,   394,
       0,     0,   395,     0,     0,   396,   397,   398,   686,   687,
     399,   400,     0,   401,   688,   403,   404,   405,   689,   690,
     406,   407,   408,   409,   691,   410,   411,     0,     0,   412,
     413,   414,     0,   692,   415,   416,     0,   693,   694,   695,
     696,     0,     0,     0,     0,     0,   421,   422,     0,   697,
     698,   699,   424,   425,   426,   700,   427,   428,   701,   429,
     430,     0,   431,   432,     0,     0,   433,     0,     0,   434,
       0,   435,     0,   702,   437,     0,     0,   703,   704,   705,
     706,   438,     0,     0,   439,   707,     0,   708,   440,   441,
     442,   709,     0,     0,     0,     0,   444,   445,     0,   446,
     447,     0,     0,   710,     0,     0,     0,   711,   712,     0,
       0,     0,     0,   713,   714,     0,     0,   715,   716,     0,
       0,   717,   718,   138,     0,   616,   140,   141,   142,   143,
       0,     0,     0,     0,     0,   144,     0,     0,   617,     0,
     146,   147,   148,   149,   150,   618,   152,     0,   153,     0,
       0,   619,   154,   620,   621,   622,   155,   623,     0,   156,
     157,   158,     0,   159,     0,   160,   161,     0,     0,   162,
     624,   625,   163,     0,   164,   626,   627,   166,     0,   167,
     168,   169,   628,   171,     0,   629,   173,     0,   174,   175,
     176,   177,   178,   179,   180,     0,   181,   182,     0,   630,
     184,     0,   185,   631,   632,   186,     0,     0,   187,   633,
     634,     0,   635,   636,     0,   188,   189,   190,   637,   638,
     639,     0,     0,     0,     0,   640,   193,   641,     0,     0,
     642,   194,     0,   195,     0,     0,     0,   196,     0,   197,
     198,   199,   200,     0,     0,     0,   201,     0,     0,   202,
     203,   204,     0,     0,     0,   205,     0,   206,   207,     0,
     208,   209,   210,     0,     0,   211,     0,   212,   213,   214,
     215,   216,   643,     0,   217,   218,   219,   644,   645,   220,
     221,     0,   222,   223,   224,   646,     0,   225,     0,     0,
       0,   226,   227,     0,   228,     0,   229,     0,   647,   231,
     648,   233,     0,   234,     0,   649,     0,   235,   236,     0,
     237,   650,     0,   238,   239,     0,     0,     0,   651,   241,
     242,   243,   652,     0,   244,   245,     0,     0,   246,     0,
     247,     0,     0,   653,   248,   249,  1598,     0,     0,   250,
       0,   251,   252,     0,   253,   254,     0,     0,     0,   255,
       0,     0,   256,   257,     0,     0,   258,     0,   655,   259,
     260,     0,     0,     0,     0,     0,   656,   262,     0,   263,
       0,   264,     0,   265,   266,     0,     0,   657,     0,     0,
       0,     0,   267,   268,   269,   270,   271,   272,   273,   274,
     275,   276,   277,   278,   279,     0,   280,   281,   658,   282,
     283,   284,   285,   659,   286,   287,   288,     0,     0,     0,
     289,   290,   291,   660,   293,     0,     0,   661,   295,   662,
     296,     0,   297,   663,   664,   665,   666,   667,   302,   303,
     304,   305,     0,   668,   306,   307,     0,     0,   308,   309,
     310,   311,   669,     0,   671,   312,   313,     0,   672,   673,
       0,   314,   315,   674,     0,   317,   318,   319,     0,   320,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   321,
     322,   323,   675,   324,   325,   326,   327,   328,   676,   330,
     331,   332,   677,   678,   335,   679,     0,   336,   337,   338,
       0,   339,     0,   340,   341,   342,   343,     0,   680,   345,
     346,     0,     0,   347,     0,     0,     0,   348,   349,   350,
     351,   352,     0,     0,   353,   354,   355,     0,   356,   357,
       0,   358,   359,   360,   681,   682,   361,     0,   362,   363,
     364,     0,   365,   366,     0,     0,   683,   367,   368,   369,
     370,   371,   684,   373,   374,   375,     0,   685,   377,     0,
       0,     0,   378,   379,   380,   381,     0,     0,     0,   382,
       0,     0,     0,   383,   384,   385,   386,     0,   387,   388,
     389,   390,   391,     0,     0,     0,     0,     0,     0,   392,
     393,     0,   394,     0,     0,   395,     0,     0,   396,   397,
     398,   686,   687,   399,   400,     0,   401,   688,   403,   404,
     405,   689,   690,   406,   407,   408,   409,   691,   410,   411,
       0,     0,   412,   413,   414,     0,   692,   415,   416,     0,
     693,   694,   695,   696,     0,     0,     0,     0,     0,   421,
     422,     0,   697,   698,   699,   424,   425,   426,   700,   427,
     428,   701,   429,   430,     0,   431,   432,     0,     0,   433,
       0,     0,   434,     0,   435,     0,   702,   437,     0,     0,
     703,   704,   705,   706,   438,     0,     0,   439,   707,     0,
     708,   440,   441,   442,   709,     0,     0,     0,     0,   444,
     445,     0,   446,   447,     0,     0,   710,     0,     0,     0,
     711,   712,     0,     0,     0,     0,   713,   714,     0,     0,
     715,   716,     0,     0,   717,   718,   138,     0,   616,   140,
     141,   142,   143,     0,     0,     0,     0,     0,   144,     0,
       0,   617,     0,   146,   147,   148,   149,   150,   618,   152,
       0,   153,     0,     0,   619,   154,   620,   621,   622,   155,
     623,     0,   156,   157,   158,     0,   159,     0,   160,   161,
       0,     0,   162,   624,   625,   163,     0,   164,   626,   627,
     166,     0,   167,   168,   169,   628,   171,     0,   629,   173,
       0,   174,   175,   176,   177,   178,   179,   180,     0,   181,
     182,     0,   630,   184,     0,   185,   631,   632,   186,     0,
       0,   187,   633,   634,     0,   635,   636,     0,   188,   189,
     190,   637,   638,   639,     0,     0,     0,     0,   640,   193,
     641,     0,     0,   642,   194,     0,   195,     0,     0,     0,
     196,     0,   197,   198,   199,   200,     0,     0,     0,   201,
       0,     0,   202,   203,   204,     0,     0,     0,   205,     0,
     206,   207,     0,   208,   209,   210,     0,     0,   211,     0,
     212,   213,   214,   215,   216,   643,     0,   217,   218,   219,
     644,   645,   220,   221,     0,   222,   223,   224,   646,     0,
     225,     0,     0,     0,   226,   227,     0,   228,     0,   229,
       0,   647,   231,   648,   233,     0,   234,     0,   649,     0,
     235,   236,     0,   237,   650,     0,   238,   239,     0,     0,
       0,   651,   241,   242,   243,   652,     0,   244,   245,     0,
       0,   246,     0,   247,     0,     0,   653,   248,   249,  1600,
       0,     0,   250,     0,   251,   252,     0,   253,   254,     0,
       0,     0,   255,     0,     0,   256,   257,     0,     0,   258,
       0,   655,   259,   260,     0,     0,     0,     0,     0,   656,
     262,     0,   263,     0,   264,     0,   265,   266,     0,     0,
     657,     0,     0,     0,     0,   267,   268,   269,   270,   271,
     272,   273,   274,   275,   276,   277,   278,   279,     0,   280,
     281,   658,   282,   283,   284,   285,   659,   286,   287,   288,
       0,     0,     0,   289,   290,   291,   660,   293,     0,     0,
     661,   295,   662,   296,     0,   297,   663,   664,   665,   666,
     667,   302,   303,   304,   305,     0,   668,   306,   307,     0,
       0,   308,   309,   310,   311,   669,     0,   671,   312,   313,
       0,   672,   673,     0,   314,   315,   674,     0,   317,   318,
     319,     0,   320,     0,     0,     0,     0,     0,     0,     0,
       0,     0,   321,   322,   323,   675,   324,   325,   326,   327,
     328,   676,   330,   331,   332,   677,   678,   335,   679,     0,
     336,   337,   338,     0,   339,     0,   340,   341,   342,   343,
       0,   680,   345,   346,     0,     0,   347,     0,     0,     0,
     348,   349,   350,   351,   352,     0,     0,   353,   354,   355,
       0,   356,   357,     0,   358,   359,   360,   681,   682,   361,
       0,   362,   363,   364,     0,   365,   366,     0,     0,   683,
     367,   368,   369,   370,   371,   684,   373,   374,   375,     0,
     685,   377,     0,     0,     0,   378,   379,   380,   381,     0,
       0,     0,   382,     0,     0,     0,   383,   384,   385,   386,
       0,   387,   388,   389,   390,   391,     0,     0,     0,     0,
       0,     0,   392,   393,     0,   394,     0,     0,   395,     0,
       0,   396,   397,   398,   686,   687,   399,   400,     0,   401,
     688,   403,   404,   405,   689,   690,   406,   407,   408,   409,
     691,   410,   411,     0,     0,   412,   413,   414,     0,   692,
     415,   416,     0,   693,   694,   695,   696,     0,     0,     0,
       0,     0,   421,   422,     0,   697,   698,   699,   424,   425,
     426,   700,   427,   428,   701,   429,   430,     0,   431,   432,
       0,     0,   433,     0,     0,   434,     0,   435,     0,   702,
     437,     0,     0,   703,   704,   705,   706,   438,     0,     0,
     439,   707,     0,   708,   440,   441,   442,   709,     0,     0,
       0,     0,   444,   445,     0,   446,   447,     0,     0,   710,
       0,     0,     0,   711,   712,     0,     0,     0,     0,   713,
     714,     0,     0,   715,   716,     0,     0,   717,   718,   138,
       0,   616,   140,   141,   142,   143,     0,     0,     0,     0,
       0,   144,     0,     0,   617,     0,   146,   147,   148,   149,
     150,   618,   152,     0,   153,     0,     0,   619,   154,   620,
     621,   622,   155,   623,     0,   156,   157,   158,     0,   159,
       0,   160,   161,     0,     0,   162,   624,   625,   163,     0,
     164,   626,   627,   166,     0,   167,   168,   169,   628,   171,
       0,   629,   173,     0,   174,   175,   176,   177,   178,   179,
     180,     0,   181,   182,     0,   630,   184,     0,   185,   631,
     632,   186,     0,     0,   187,   633,   634,     0,   635,   636,
       0,   188,   189,   190,   637,   638,   639,     0,     0,     0,
       0,   640,   193,   641,     0,     0,   642,   194,     0,   195,
       0,     0,     0,   196,     0,   197,   198,   199,   200,     0,
       0,     0,   201,     0,     0,   202,   203,   204,     0,     0,
       0,   205,     0,   206,   207,     0,   208,   209,   210,     0,
       0,   211,     0,   212,   213,   214,   215,   216,   643,     0,
     217,   218,   219,   644,   645,   220,   221,     0,   222,   223,
     224,   646,     0,   225,     0,     0,     0,   226,   227,     0,
     228,     0,   229,     0,   647,   231,   648,   233,     0,   234,
       0,   649,     0,   235,   236,     0,   237,   650,     0,   238,
     239,     0,     0,     0,   651,   241,   242,   243,   652,     0,
     244,   245,     0,     0,   246,     0,   247,     0,     0,   653,
     248,   249,   654,     0,     0,   250,     0,   251,   252,     0,
     253,   254,     0,     0,     0,   255,     0,     0,   256,   257,
       0,     0,   258,     0,   655,   259,   260,     0,     0,     0,
       0,     0,   656,   262,     0,   263,     0,   264,     0,   265,
     266,     0,     0,   657,     0,     0,     0,     0,   267,   268,
     269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
     279,     0,   280,   281,   658,   282,   283,   284,   285,   659,
     286,   287,  3910,     0,     0,     0,   289,   290,   291,   660,
     293,     0,     0,   661,   295,   662,   296,     0,   297,   663,
     664,   665,   666,   667,   302,   303,   304,   305,     0,   668,
     306,   307,     0,     0,   308,   309,   310,   311,   669,     0,
     671,   312,   313,     0,   672,   673,     0,   314,   315,   674,
       0,   317,   318,   319,     0,   320,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   321,   322,   323,   675,   324,
     325,   326,   327,   328,   676,   330,   331,   332,   677,   678,
     335,   679,     0,   336,   337,   338,     0,   339,     0,   340,
     341,   342,   343,     0,   680,   345,   346,     0,     0,   347,
       0,     0,     0,   348,   349,   350,   351,   352,     0,     0,
     353,   354,   355,     0,   356,   357,     0,   358,   359,   360,
     681,   682,   361,     0,   362,   363,   364,     0,   365,   366,
       0,     0,   683,   367,   368,   369,   370,   371,   684,   373,
     374,   375,     0,   685,   377,     0,     0,     0,   378,   379,
     380,   381,     0,     0,     0,   382,     0,     0,     0,   383,
     384,   385,   386,     0,   387,   388,   389,   390,   391,     0,
       0,     0,     0,     0,     0,   392,   393,     0,   394,     0,
       0,   395,     0,     0,   396,   397,   398,   686,   687,   399,
     400,     0,   401,   688,   403,   404,   405,   689,   690,   406,
     407,   408,   409,   691,   410,   411,     0,     0,   412,   413,
     414,     0,   692,   415,   416,     0,   693,   694,   695,   696,
       0,     0,     0,     0,     0,   421,   422,     0,   697,   698,
     699,   424,   425,   426,   700,   427,   428,   701,   429,   430,
       0,   431,   432,     0,     0,   433,     0,     0,   434,     0,
     435,     0,   702,   437,     0,     0,   703,   704,   705,   706,
     438,     0,     0,   439,   707,     0,   708,   440,   441,   442,
     709,     0,     0,     0,     0,   444,   445,     0,   446,   447,
       0,     0,   710,     0,     0,     0,   711,   712,     0,     0,
       0,     0,   713,   714,     0,     0,   715,   716,     0,     0,
     717,   718,   138,     0,   139,   140,   141,   142,   143,     0,
       0,     0,     0,     0,   144,     0,     0,   145,     0,   146,
     147,   148,   149,   150,   151,   152,     0,   153,     0,     0,
       0,   154,     0,     0,     0,   155,     0,     0,   156,   157,
     158,     0,   159,     0,   160,   161,     0,     0,   162,     0,
       0,   163,     0,   164,   165,     0,   166,     0,   167,   168,
     169,   170,   171,     0,   172,   173,     0,   174,   175,   176,
     177,   178,   179,   180,     0,   181,   182,  2268,   183,   184,
       0,   185,     0,     0,   186,     0,     0,   187,     0,     0,
       0,     0,     0,     0,   188,   189,   190,     0,     0,   191,
       0,     0,     0,     0,   192,   193,     0,     0,     0,     0,
     194,     0,   195,     0,     0,     0,   196,     0,   197,   198,
     199,   200,     0,     0,     0,   201,     0,     0,   202,   203,
     204,     0,     0,     0,   205,     0,   206,   207,     0,   208,
     209,   210,     0,     0,   211,     0,   212,   213,   214,   215,
     216,     0,     0,   217,   218,   219,     0,     0,   220,   221,
       0,   222,   223,   224,     0,     0,   225,     0,     0,     0,
     226,   227,     0,   228,   460,   229,     0,   230,   231,   232,
     233,     0,   234,     0,     0,     0,   235,   236,     0,   237,
       0,     0,   238,   239,     0,     0,     0,   240,   241,   242,
     243,     0,     0,   244,   245,  1375,     0,   246,     0,   247,
       0,     0,     0,   248,   249,     0,     0,     0,   250,     0,
     251,   252,     0,   253,   254,     0,     0,     0,   255,  1376,
       0,   256,   257,     0,     0,   258,     0,     0,   259,   260,
       0,  2772,     0,     0,     0,   261,   262,     0,   263,     0,
     264,     0,   265,   266,     0,     0,     0,     0,     0,     0,
       0,   267,   268,   269,   270,   271,   272,   273,   274,   275,
     276,   277,   278,   279,     0,   280,   281,     0,   282,   283,
     284,   285,     0,   286,   287,   288,     0,     0,     0,   289,
     290,   291,   292,   293,     0,     0,   294,   295,     0,   296,
       0,   297,     0,   298,   299,   300,   301,   302,   303,   304,
     305,     0,     0,   306,   307,     0,     0,   308,   309,   310,
     311,     0,     0,     0,   312,   313,     0,     0,     0,     0,
     314,   315,   316,     0,   317,   318,   319,     0,   320,     0,
       0,     0,     0,     0,     0,     0,     0,     0,   321,   322,
     323,     0,   324,   325,   326,   327,  2773,   329,   330,   331,
     332,   333,   334,   335,     0,     0,   336,   337,   338,     0,
     339,     0,   340,   341,   342,   343,     0,   344,   345,   346,
       0,     0,   347,     0,     0,     0,   348,   349,   350,   351,
     352,     0,     0,   353,   354,   355,     0,   356,   357,     0,
     358,   359,   360,     0,     0,   361,     0,   362,   363,   364,
       0,   365,   366,     0,     0,     0,   367,   368,   369,   370,
     371,   372,   373,   374,   375,     0,   376,   377,  -403,     0,
       0,   378,   379,   380,   381,     0,     0,     0,   382,     0,
       0,     0,   383,   384,   385,   386,     0,   387,   388,   389,
     390,   391,   463,     0,     0,     0,     0,     0,   392,   393,
       0,   394,     0,     0,   395,     0,     0,   396,   397,   398,
       0,     0,   399,   400,     0,   401,   402,   403,   404,   405,
       0,     0,   406,   407,   408,   409,     0,   410,   411,     0,
       0,   412,   413,   414,     0,     0,   415,   416,     0,   417,
     418,   419,   420,     0,     0,     0,     0,     0,   421,   422,
       0,     0,     0,   423,   424,   425,   426,     0,   427,   428,
       0,   429,   430,     0,   431,   432,     0,     0,   433,     0,
       0,   434,     0,   435,     0,   436,   437,     0,     0,     0,
       0,     0,     0,   438,     0,     0,   439,     0,     0,     0,
     440,   441,   442,   443,     0,     0,     0,     0,   444,   445,
       0,   446,   447,     0,     0,   448,     0,     0,   138,     0,
     139,   140,   141,   142,   143,     0,     0,     0,     0,     0,
     144,     0,     0,   145,  2333,   146,   147,   148,   149,   150,
     151,   152,     0,   153,     0,     0,     0,   154,     0,     0,
       0,   155,     0,     0,   156,   157,   158,     0,   159,     0,
     160,   161,     0,     0,   162,     0,     0,   163,     0,   164,
     165,     0,   166,     0,   167,   168,   169,   170,   171,     0,
     172,   173,     0,   174,   175,   176,   177,   178,   179,   180,
       0,   181,   182,  2268,   183,   184,     0,   185,     0,     0,
     186,     0,     0,   187,     0,     0,     0,     0,     0,     0,
     188,   189,   190,     0,     0,   191,     0,     0,     0,     0,
     192,   193,     0,     0,     0,     0,   194,     0,   195,     0,
       0,     0,   196,     0,   197,   198,   199,   200,     0,     0,
       0,   201,     0,     0,   202,   203,   204,     0,     0,     0,
     205,     0,   206,   207,     0,   208,   209,   210,     0,     0,
     211,     0,   212,   213,   214,   215,   216,     0,     0,   217,
     218,   219,     0,     0,   220,   221,     0,   222,   223,   224,
       0,     0,   225,     0,     0,     0,   226,   227,     0,   228,
     460,   229,     0,   230,   231,   232,   233,     0,   234,     0,
       0,     0,   235,   236,     0,   237,     0,     0,   238,   239,
       0,     0,     0,   240,   241,   242,   243,     0,     0,   244,
     245,  1375,     0,   246,     0,   247,     0,     0,     0,   248,
     249,     0,     0,     0,   250,     0,   251,   252,     0,   253,
     254,     0,     0,     0,   255,  1376,     0,   256,   257,     0,
       0,   258,     0,     0,   259,   260,     0,     0,     0,     0,
       0,   261,   262,     0,   263,     0,   264,     0,   265,   266,
       0,     0,     0,     0,     0,     0,     0,   267,   268,   269,
     270,   271,   272,   273,   274,   275,   276,   277,   278,   279,
       0,   280,   281,     0,   282,   283,   284,   285,     0,   286,
     287,   288,     0,     0,     0,   289,   290,   291,   292,   293,
       0,     0,   294,   295,     0,   296,     0,   297,     0,   298,
     299,   300,   301,   302,   303,   304,   305,     0,     0,   306,
     307,     0,     0,   308,   309,   310,   311,     0,     0,     0,
     312,   313,     0,     0,     0,     0,   314,   315,   316,     0,
     317,   318,   319,     0,   320,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   321,   322,   323,     0,   324,   325,
     326,   327,   328,   329,   330,   331,   332,   333,   334,   335,
       0,     0,   336,   337,   338,     0,   339,     0,   340,   341,
     342,   343,     0,   344,   345,   346,     0,     0,   347,     0,
       0,     0,   348,   349,   350,   351,   352,     0,     0,   353,
     354,   355,     0,   356,   357,     0,   358,   359,   360,     0,
       0,   361,     0,   362,   363,   364,     0,   365,   366,     0,
       0,     0,   367,   368,   369,   370,   371,   372,   373,   374,
     375,     0,   376,   377,     0,     0,     0,   378,   379,   380,
     381,     0,     0,     0,   382,     0,     0,     0,   383,   384,
     385,   386,     0,   387,   388,   389,   390,   391,   463,     0,
       0,     0,     0,     0,   392,   393,     0,   394,     0,     0,
     395,     0,     0,   396,   397,   398,     0,     0,   399,   400,
       0,   401,   402,   403,   404,   405,     0,     0,   406,   407,
     408,   409,     0,   410,   411,     0,     0,   412,   413,   414,
       0,     0,   415,   416,     0,   417,   418,   419,   420,     0,
       0,     0,     0,     0,   421,   422,     0,     0,     0,   423,
     424,   425,   426,     0,   427,   428,     0,   429,   430,     0,
     431,   432,     0,     0,   433,     0,     0,   434,     0,   435,
       0,   436,   437,     0,     0,     0,     0,     0,     0,   438,
       0,     0,   439,     0,     0,     0,   440,   441,   442,   443,
       0,     0,     0,     0,   444,   445,     0,   446,   447,     0,
       0,   448,     0,     0,   138,     0,   139,   140,   141,   142,
     143,     0,     0,     0,     0,     0,   144,     0,     0,   145,
    2333,   146,   147,   148,   149,   150,   151,   152,     0,   153,
       0,     0,     0,   154,     0,     0,     0,   155,     0,     0,
     156,   157,   158,     0,   159,     0,   160,   161,     0,     0,
     162,     0,     0,   163,     0,   164,   165,     0,   166,     0,
     167,   168,   169,   170,   171,     0,   172,   173,     0,   174,
     175,   176,   177,   178,   179,   180,     0,   181,   182,     0,
     183,   184,     0,   185,     0,     0,   186,     0,     0,   187,
       0,     0,     0,     0,     0,     0,   188,   189,   190,     0,
       0,   191,     0,     0,     0,     0,   192,   193,     0,     0,
       0,     0,   194,     0,   195,     0,     0,     0,   196,     0,
     197,   198,   199,   200,     0,     0,     0,   201,     0,     0,
     202,   203,   204,     0,     0,     0,   205,     0,   206,   207,
       0,   208,   209,   210,     0,     0,   211,     0,   212,   213,
     214,   215,   216,     0,     0,   217,   218,   219,     0,     0,
     220,   221,     0,   222,   223,   224,     0,     0,   225,     0,
       0,     0,   226,   227,     0,   228,     0,   229,     0,   230,
     231,   232,   233,     0,   234,     0,     0,     0,   235,   236,
       0,   237,     0,     0,   238,   239,     0,     0,     0,   240,
     241,   242,   243,     0,     0,   244,   245,     0,     0,   246,
       0,   247,     0,     0,     0,   248,   249,     0,     0,     0,
     250,     0,   251,   252,     0,   253,   254,     0,     0,     0,
     255,     0,     0,   256,   257,     0,     0,   258,     0,     0,
     259,   260,     0,     0,     0,     0,     0,   261,   262,     0,
     263,     0,   264,     0,   265,   266,     0,     0,     0,     0,
       0,     0,     0,   267,   268,   269,   270,   271,   272,   273,
     274,   275,   276,   277,   278,   279,     0,   280,   281,     0,
     282,   283,   284,   285,     0,   286,   287,   288,     0,     0,
       0,   289,   290,   291,   292,   293,     0,     0,   294,   295,
       0,   296,     0,   297,     0,   298,   299,   300,   301,   302,
     303,   304,   305,     0,     0,   306,   307,     0,     0,   308,
     309,   310,   311,     0,     0,     0,   312,   313,     0,     0,
       0,     0,   314,   315,   316,     0,   317,   318,   319,     0,
     320,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     321,   322,   323,     0,   324,   325,   326,   327,   328,   329,
     330,   331,   332,   333,   334,   335,     0,     0,   336,   337,
     338,     0,   339,     0,   340,   341,   342,   343,     0,   344,
     345,   346,     0,     0,   347,     0,     0,     0,   348,   349,
     350,   351,   352,     0,     0,   353,   354,   355,     0,   356,
     357,     0,   358,   359,   360,     0,     0,   361,     0,   362,
     363,   364,     0,   365,   366,     0,     0,     0,   367,   368,
     369,   370,   371,   372,   373,   374,   375,     0,   376,   377,
    2155,     0,     0,   378,   379,   380,   381,     0,     0,     0,
     382,     0,     0,     0,   383,   384,   385,   386,     0,   387,
     388,   389,   390,   391,     0,     0,     0,     0,     0,     0,
     392,   393,     0,   394,     0,     0,   395,     0,     0,   396,
     397,   398,     0,     0,   399,   400,     0,   401,   402,   403,
     404,   405,     0,     0,   406,   407,   408,   409,     0,   410,
     411,     0,     0,   412,   413,   414,     0,     0,   415,   416,
       0,   417,   418,   419,   420,     0,     0,     0,     0,     0,
     421,   422,     0,     0,     0,   423,   424,   425,   426,     0,
     427,   428,     0,   429,   430,     0,   431,   432,     0,     0,
     433,     0,     0,   434,     0,   435,     0,   436,   437,     0,
       0,     0,     0,     0,     0,   438,     0,     0,   439,     0,
       0,     0,   440,   441,   442,   443,     0,     0,     0,     0,
     444,   445,     0,   446,   447,     0,     0,   448,     0,     0,
     138,     0,   139,   140,   141,   142,   143,     0,     0,  2551,
       0,     0,   144,     0,     0,   145,   718,   146,   147,   148,
     149,   150,   151,   152,     0,   153,     0,     0,     0,   154,
       0,     0,     0,   155,     0,     0,   156,   157,   158,     0,
     159,     0,   160,   161,     0,     0,   162,     0,     0,   163,
       0,   164,   165,     0,   166,     0,   167,   168,   169,   170,
     171,     0,   172,   173,     0,   174,   175,   176,   177,   178,
     179,   180,     0,   181,   182,     0,   183,   184,     0,   185,
       0,     0,   186,     0,     0,   187,     0,     0,     0,     0,
       0,     0,   188,   189,   190,     0,     0,   191,     0,     0,
       0,     0,   192,   193,     0,     0,     0,     0,   194,     0,
     195,     0,     0,     0,   196,     0,   197,   198,   199,   200,
       0,     0,     0,   201,     0,     0,   202,   203,   204,     0,
       0,     0,   205,     0,   206,   207,     0,   208,   209,   210,
       0,     0,   211,     0,   212,   213,   214,   215,   216,     0,
       0,   217,   218,   219,     0,     0,   220,   221,     0,   222,
     223,   224,     0,     0,   225,     0,     0,     0,   226,   227,
       0,   228,     0,   229,     0,   230,   231,   232,   233,     0,
     234,     0,     0,     0,   235,   236,     0,   237,     0,     0,
     238,   239,     0,     0,     0,   240,   241,   242,   243,     0,
       0,   244,   245,     0,     0,   246,     0,   247,     0,     0,
       0,   248,   249,     0,     0,     0,   250,     0,   251,   252,
       0,   253,   254,     0,     0,     0,   255,     0,     0,   256,
     257,     0,     0,   258,     0,     0,   259,   260,     0,     0,
       0,     0,     0,   261,   262,     0,   263,     0,   264,     0,
     265,   266,     0,     0,     0,     0,     0,     0,     0,   267,
     268,   269,   270,   271,   272,   273,   274,   275,   276,   277,
     278,   279,     0,   280,   281,     0,   282,   283,   284,   285,
       0,   286,   287,   288,     0,     0,     0,   289,   290,   291,
     292,   293,     0,     0,   294,   295,     0,   296,     0,   297,
       0,   298,   299,   300,   301,   302,   303,   304,   305,     0,
       0,   306,   307,     0,     0,   308,   309,   310,   311,     0,
       0,     0,   312,   313,     0,     0,     0,     0,   314,   315,
     316,     0,   317,   318,   319,     0,   320,     0,     0,     0,
       0,     0,     0,     0,     0,     0,   321,   322,   323,     0,
     324,   325,   326,   327,   328,   329,   330,   331,   332,   333,
     334,   335,     0,     0,   336,   337,   338,     0,   339,     0,
     340,   341,   342,   343,     0,   344,   345,   346,     0,     0,
     347,     0,     0,     0,   348,   349,   350,   351,   352,     0,
       0,   353,   354,   355,     0,   356,   357,     0,   358,   359,
     360,     0,     0,   361,     0,   362,   363,   364,     0,   365,
     366,     0,     0,     0,   367,   368,   369,   370,   371,   372,
     373,   374,   375,     0,   376,   377,     0,     0,     0,   378,
     379,   380,   381,     0,     0,     0,   382,     0,     0,     0,
     383,   384,   385,   386,     0,   387,   388,   389,   390,   391,
       0,     0,     0,     0,     0,     0,   392,   393,     0,   394,
       0,     0,   395,     0,     0,   396,   397,   398,     0,     0,
     399,   400,     0,   401,   402,   403,   404,   405,     0,     0,
     406,   407,   408,   409,     0,   410,   411,     0,     0,   412,
     413,   414,     0,     0,   415,   416,     0,   417,   418,   419,
     420,     0,     0,     0,     0,     0,   421,   422,     0,     0,
       0,   423,   424,   425,   426,     0,   427,   428,     0,   429,
     430,     0,   431,   432,     0,     0,   433,     0,     0,   434,
       0,   435,     0,   436,   437,     0,     0,     0,     0,     0,
       0,   438,     0,     0,   439,     0,     0,     0,   440,   441,
     442,   443,     0,     0,     0,     0,   444,   445,     0,   446,
     447,     0,     0,   448,     0,     0,     0,     0,   138,     0,
     139,   140,   141,   142,   143,  4054,     0,     0,     0,     0,
     144,  4055,   718,   145,     0,   146,   147,   148,   149,   150,
     151,   152,     0,   153,     0,     0,     0,   154,     0,     0,
       0,   155,     0,     0,   156,   157,   158,     0,   159,     0,
     160,   161,     0,     0,   162,     0,     0,   163,     0,   164,
     165,     0,   166,     0,   167,   168,   169,   170,   171,     0,
     172,   173,     0,   174,   175,   176,   177,   178,   179,   180,
       0,   181,   182,     0,   183,   184,     0,   185,     0,     0,
     186,     0,     0,   187,     0,     0,     0,     0,     0,     0,
     188,   189,   190,     0,     0,   191,     0,     0,     0,     0,
     192,   193,     0,     0,     0,     0,   194,     0,   195,     0,
       0,     0,   196,     0,   197,   198,   199,   200,     0,     0,
       0,   201,     0,     0,   202,   203,   204,     0,     0,     0,
     205,     0,   206,   207,     0,   208,   209,   210,     0,     0,
     211,     0,   212,   213,   214,   215,   216,     0,     0,   217,
     218,   219,     0,     0,   220,   221,     0,   222,   223,   224,
       0,     0,   225,     0,     0,     0,   226,   227,     0,   228,
       0,   229,     0,   230,   231,   232,   233,     0,   234,     0,
       0,     0,   235,   236,     0,   237,     0,     0,   238,   239,
       0,     0,     0,   240,   241,   242,   243,     0,     0,   244,
     245,     0,     0,   246,     0,   247,     0,     0,     0,   248,
     249,     0,     0,     0,   250,     0,   251,   252,     0,   253,
     254,     0,     0,     0,   255,     0,     0,   256,   257,     0,
       0,   258,     0,     0,   259,   260,     0,     0,     0,     0,
       0,   261,   262,     0,   263,     0,   264,     0,   265,   266,
       0,     0,     0,     0,     0,     0,     0,   267,   268,   269,
     270,   271,   272,   273,   274,   275,   276,   277,   278,   279,
       0,   280,   281,     0,   282,   283,   284,   285,     0,   286,
     287,   288,     0,     0,     0,   289,   290,   291,   292,   293,
       0,     0,   294,   295,     0,   296,     0,   297,     0,   298,
     299,   300,   301,   302,   303,   304,   305,     0,     0,   306,
     307,     0,     0,   308,   309,   310,   311,     0,     0,     0,
     312,   313,     0,     0,     0,     0,   314,   315,   316,     0,
     317,   318,   319,     0,   320,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   321,   322,   323,     0,   324,   325,
     326,   327,   328,   329,   330,   331,   332,   333,   334,   335,
       0,     0,   336,   337,   338,     0,   339,     0,   340,   341,
     342,   343,     0,   344,   345,   346,     0,     0,   347,     0,
       0,     0,   348,   349,   350,   351,   352,     0,     0,   353,
     354,   355,     0,   356,   357,     0,   358,   359,   360,     0,
       0,   361,     0,   362,   363,   364,     0,   365,   366,     0,
       0,     0,   367,   368,   369,   370,   371,   372,   373,   374,
     375,     0,   376,   377,     0,     0,     0,   378,   379,   380,
     381,     0,     0,     0,   382,     0,     0,     0,   383,   384,
     385,   386,     0,   387,   388,   389,   390,   391,     0,     0,
       0,     0,     0,     0,   392,   393,     0,   394,     0,     0,
     395,     0,     0,   396,   397,   398,     0,     0,   399,   400,
       0,   401,   402,   403,   404,   405,     0,     0,   406,   407,
     408,   409,     0,   410,   411,     0,     0,   412,   413,   414,
       0,     0,   415,   416,     0,   417,   418,   419,   420,     0,
       0,     0,     0,     0,   421,   422,     0,     0,     0,   423,
     424,   425,   426,     0,   427,   428,     0,   429,   430,     0,
     431,   432,     0,     0,   433,     0,     0,   434,     0,   435,
       0,   436,   437,     0,     0,     0,     0,     0,     0,   438,
       0,     0,   439,     0,     0,     0,   440,   441,   442,   443,
       0,     0,     0,     0,   444,   445,     0,   446,   447,     0,
       0,   448,     0,     0,   138,     0,   139,   140,   141,   142,
     143,     0,  1042,     0,     0,     0,   144,     0,     0,   145,
     718,   146,   147,   148,   149,   150,   151,   152,     0,   153,
       0,     0,     0,   154,     0,     0,     0,   155,     0,     0,
     156,   157,   158,     0,   159,     0,   160,   161,     0,     0,
     162,     0,     0,   163,     0,   164,   165,     0,   166,     0,
     167,   168,   169,   170,   171,     0,   172,   173,     0,   174,
     175,   176,   177,   178,   179,   180,     0,   181,   182,     0,
     183,   184,     0,   185,     0,     0,   186,     0,     0,   187,
       0,     0,     0,     0,     0,     0,   188,   189,   190,     0,
       0,   191,     0,     0,     0,     0,   192,   193,     0,     0,
       0,     0,   194,     0,   195,     0,     0,     0,   196,     0,
     197,   198,   199,   200,     0,     0,     0,   201,     0,     0,
     202,   203,   204,     0,     0,     0,   205,     0,   206,   207,
       0,   208,   209,   210,     0,     0,   211,     0,   212,   213,
     214,   215,   216,     0,     0,   217,   218,   219,     0,     0,
     220,   221,     0,   222,   223,   224,     0,     0,   225,     0,
       0,     0,   226,   227,     0,   228,     0,   229,     0,   230,
     231,   232,   233,     0,   234,     0,     0,     0,   235,   236,
       0,   237,     0,     0,   238,   239,     0,     0,     0,   240,
     241,   242,   243,     0,     0,   244,   245,     0,     0,   246,
       0,   247,     0,     0,     0,   248,   249,     0,  1231,     0,
     250,     0,   251,   252,     0,   253,   254,     0,     0,     0,
     255,     0,     0,   256,   257,     0,     0,   258,     0,     0,
     259,   260,     0,     0,     0,     0,     0,   261,   262,     0,
     263,     0,   264,     0,   265,   266,     0,     0,     0,     0,
       0,     0,     0,   267,   268,   269,   270,   271,   272,   273,
     274,   275,   276,   277,   278,   279,     0,   280,   281,     0,
     282,   283,   284,   285,     0,   286,   287,   288,     0,     0,
       0,   289,   290,   291,   292,   293,     0,     0,   294,   295,
       0,   296,     0,   297,     0,   298,   299,   300,   301,   302,
     303,   304,   305,     0,     0,   306,   307,     0,     0,   308,
     309,   310,   311,     0,     0,     0,   312,   313,     0,     0,
       0,     0,   314,   315,   316,     0,   317,   318,   319,     0,
     320,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     321,   322,   323,     0,   324,   325,   326,   327,   328,   329,
     330,   331,   332,   333,   334,   335,     0,     0,   336,   337,
     338,     0,   339,     0,   340,   341,   342,   343,     0,   344,
     345,   346,     0,     0,   347,     0,     0,     0,   348,   349,
     350,   351,   352,     0,     0,   353,   354,   355,     0,   356,
     357,     0,   358,   359,   360,     0,     0,   361,     0,   362,
     363,   364,     0,   365,   366,     0,     0,     0,   367,   368,
     369,   370,   371,   372,   373,   374,   375,     0,   376,   377,
       0,     0,     0,   378,   379,   380,   381,     0,     0,     0,
     382,     0,     0,     0,   383,   384,   385,   386,     0,   387,
     388,   389,   390,   391,     0,     0,     0,     0,     0,     0,
     392,   393,     0,   394,     0,     0,   395,     0,     0,   396,
     397,   398,     0,     0,   399,   400,     0,   401,   402,   403,
     404,   405,     0,     0,   406,   407,   408,   409,     0,   410,
     411,     0,     0,   412,   413,   414,     0,     0,   415,   416,
       0,   417,   418,   419,   420,     0,     0,     0,     0,     0,
     421,   422,     0,     0,     0,   423,   424,   425,   426,     0,
     427,   428,     0,   429,   430,     0,   431,   432,     0,     0,
     433,     0,     0,   434,     0,   435,     0,   436,   437,     0,
       0,     0,     0,     0,     0,   438,     0,     0,   439,     0,
       0,     0,   440,   441,   442,   443,     0,     0,     0,     0,
     444,   445,     0,   446,   447,     0,     0,   448,     0,     0,
     138,     0,   139,   140,   141,   142,   143,     0,     0,     0,
       0,     0,   144,     0,     0,   145,   494,   146,   147,   148,
     149,   150,   151,   152,     0,   153,     0,     0,     0,   154,
       0,     0,     0,   155,     0,     0,   156,   157,   158,     0,
     159,     0,   160,   161,     0,     0,   162,     0,     0,   163,
       0,   164,   165,     0,   166,     0,   167,   168,   169,   170,
     171,     0,   172,   173,     0,   174,   175,   176,   177,   178,
     179,   180,     0,   181,   182,     0,   183,   184,     0,   185,
       0,     0,   186,     0,     0,   187,     0,     0,     0,     0,
       0,     0,   188,   189,   190,     0,     0,   191,     0,     0,
       0,     0,   192,   193,     0,     0,     0,     0,   194,     0,
     195,     0,     0,     0,   196,     0,   197,   198,   199,   200,
       0,     0,     0,   201,     0,     0,   202,   203,   204,     0,
       0,     0,   205,     0,   206,   207,     0,   208,   209,   210,
       0,     0,   211,     0,   212,   213,   214,   215,   216,     0,
       0,   217,   218,   219,     0,     0,   220,   221,     0,   222,
     223,   224,     0,     0,   225,     0,     0,     0,   226,   227,
       0,   228,     0,   229,     0,   230,   231,   232,   233,     0,
     234,     0,     0,     0,   235,   236,     0,   237,     0,     0,
     238,   239,     0,     0,     0,   240,   241,   242,   243,     0,
       0,   244,   245,     0,     0,   246,     0,   247,     0,     0,
       0,   248,   249,     0,     0,     0,   250,     0,   251,   252,
       0,   253,   254,     0,     0,     0,   255,     0,     0,   256,
     257,     0,     0,   258,     0,     0,   259,   260,     0,     0,
       0,     0,     0,   261,   262,     0,   263,     0,   264,     0,
     265,   266,     0,     0,     0,     0,     0,     0,     0,   267,
     268,   269,   270,   271,   272,   273,   274,   275,   276,   277,
     278,   279,     0,   280,   281,     0,   282,   283,   284,   285,
       0,   286,   287,   288,     0,     0,     0,   289,   290,   291,
     292,   293,     0,     0,   294,   295,     0,   296,     0,   297,
       0,   298,   299,   300,   301,   302,   303,   304,   305,     0,
       0,   306,   307,     0,     0,   308,   309,   310,   311,     0,
       0,     0,   312,   313,     0,     0,     0,     0,   314,   315,
     316,     0,   317,   318,   319,     0,   320,     0,     0,     0,
       0,     0,     0,     0,     0,     0,   321,   322,   323,     0,
     324,   325,   326,   327,   328,   329,   330,   331,   332,   333,
     334,   335,     0,     0,   336,   337,   338,     0,   339,     0,
     340,   341,   342,   343,     0,   344,   345,   346,     0,     0,
     347,     0,     0,     0,   348,   349,   350,   351,   352,     0,
       0,   353,   354,   355,     0,   356,   357,     0,   358,   359,
     360,     0,     0,   361,     0,   362,   363,   364,     0,   365,
     366,     0,     0,     0,   367,   368,   369,   370,   371,   372,
     373,   374,   375,     0,   376,   377,     0,     0,     0,   378,
     379,   380,   381,     0,     0,     0,   382,     0,     0,     0,
     383,   384,   385,   386,     0,   387,   388,   389,   390,   391,
       0,     0,     0,     0,     0,     0,   392,   393,     0,   394,
       0,     0,   395,     0,     0,   396,   397,   398,     0,     0,
     399,   400,     0,   401,   402,   403,   404,   405,     0,     0,
     406,   407,   408,   409,     0,   410,   411,     0,     0,   412,
     413,   414,     0,     0,   415,   416,     0,   417,   418,   419,
     420,     0,     0,     0,     0,     0,   421,   422,     0,     0,
       0,   423,   424,   425,   426,     0,   427,   428,     0,   429,
     430,     0,   431,   432,     0,     0,   433,     0,     0,   434,
       0,   435,     0,   436,   437,     0,     0,     0,     0,     0,
       0,   438,     0,     0,   439,     0,     0,     0,   440,   441,
     442,   443,     0,     0,     0,     0,   444,   445,     0,   446,
     447,     0,     0,   448,     0,     0,     0,     0,   138,  2098,
     139,   140,   141,   142,   143,     0,     0,     0,     0,     0,
     144,     0,   494,   145,     0,   146,   147,   148,   149,   150,
     151,   152,     0,   153,     0,     0,     0,   154,     0,     0,
       0,   155,     0,     0,   156,   157,   158,     0,   159,     0,
     160,   161,     0,     0,   162,     0,     0,   163,     0,   164,
     165,     0,   166,     0,   167,   168,   169,   170,   171,     0,
     172,   173,     0,   174,   175,   176,   177,   178,   179,   180,
       0,   181,   182,     0,   183,   184,     0,   185,     0,     0,
     186,     0,     0,   187,     0,     0,     0,     0,     0,     0,
     188,   189,   190,     0,     0,   191,     0,     0,     0,     0,
     192,   193,     0,     0,     0,     0,   194,     0,   195,     0,
       0,     0,   196,     0,   197,   198,   199,   200,     0,     0,
       0,   201,     0,     0,   202,   203,   204,     0,     0,     0,
     205,     0,   206,   207,     0,   208,   209,   210,     0,     0,
     211,     0,   212,   213,   214,   215,   216,     0,     0,   217,
     218,   219,     0,     0,   220,   221,     0,   222,   223,   224,
       0,     0,   225,     0,     0,     0,   226,   227,     0,   228,
       0,   229,     0,   230,   231,   232,   233,     0,   234,     0,
       0,     0,   235,   236,     0,   237,     0,     0,   238,   239,
       0,     0,     0,   240,   241,   242,   243,     0,     0,   244,
     245,     0,     0,   246,     0,   247,     0,     0,     0,   248,
     249,     0,     0,     0,   250,     0,   251,   252,     0,   253,
     254,     0,     0,     0,   255,     0,     0,   256,   257,     0,
       0,   258,     0,     0,   259,   260,     0,     0,     0,     0,
       0,   261,   262,     0,   263,     0,   264,     0,   265,   266,
       0,     0,     0,     0,     0,     0,     0,   267,   268,   269,
     270,   271,   272,   273,   274,   275,   276,   277,   278,   279,
       0,   280,   281,     0,   282,   283,   284,   285,     0,   286,
     287,   288,     0,     0,     0,   289,   290,   291,   292,   293,
       0,     0,   294,   295,     0,   296,     0,   297,     0,   298,
     299,   300,   301,   302,   303,   304,   305,     0,     0,   306,
     307,     0,     0,   308,   309,   310,   311,     0,     0,     0,
     312,   313,     0,     0,     0,     0,   314,   315,   316,     0,
     317,   318,   319,     0,   320,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   321,   322,   323,     0,   324,   325,
     326,   327,   328,   329,   330,   331,   332,   333,   334,   335,
       0,     0,   336,   337,   338,     0,   339,     0,   340,   341,
     342,   343,     0,   344,   345,   346,     0,     0,   347,     0,
       0,     0,   348,   349,   350,   351,   352,     0,     0,   353,
     354,   355,     0,   356,   357,     0,   358,   359,   360,     0,
       0,   361,     0,   362,   363,   364,     0,   365,   366,     0,
       0,     0,   367,   368,   369,   370,   371,   372,   373,   374,
     375,     0,   376,   377,     0,     0,     0,   378,   379,   380,
     381,     0,     0,     0,   382,     0,     0,     0,   383,   384,
     385,   386,     0,   387,   388,   389,   390,   391,     0,     0,
       0,     0,     0,     0,   392,   393,     0,   394,     0,     0,
     395,     0,     0,   396,   397,   398,     0,     0,   399,   400,
       0,   401,   402,   403,   404,   405,     0,     0,   406,   407,
     408,   409,     0,   410,   411,     0,     0,   412,   413,   414,
       0,     0,   415,   416,     0,   417,   418,   419,   420,     0,
       0,     0,     0,     0,   421,   422,     0,     0,     0,   423,
     424,   425,   426,     0,   427,   428,     0,   429,   430,     0,
     431,   432,     0,     0,   433,     0,     0,   434,     0,   435,
       0,   436,   437,     0,     0,     0,     0,     0,     0,   438,
       0,     0,   439,     0,     0,     0,   440,   441,   442,   443,
       0,     0,     0,     0,   444,   445,     0,   446,   447,     0,
       0,   448,     0,     0,   138,     0,   139,   140,   141,   142,
     143,     0,  2332,     0,     0,     0,   144,     0,     0,   145,
    2333,   146,   147,   148,   149,   150,   151,   152,     0,   153,
       0,     0,     0,   154,     0,     0,     0,   155,     0,     0,
     156,   157,   158,     0,   159,     0,   160,   161,     0,     0,
     162,     0,     0,   163,     0,   164,   165,     0,   166,     0,
     167,   168,   169,   170,   171,     0,   172,   173,     0,   174,
     175,   176,   177,   178,   179,   180,     0,   181,   182,     0,
     183,   184,     0,   185,     0,     0,   186,     0,     0,   187,
       0,     0,     0,     0,     0,     0,   188,   189,   190,     0,
       0,   191,     0,     0,     0,     0,   192,   193,     0,     0,
       0,     0,   194,     0,   195,     0,     0,     0,   196,     0,
     197,   198,   199,   200,     0,     0,     0,   201,     0,     0,
     202,   203,   204,     0,     0,     0,   205,     0,   206,   207,
       0,   208,   209,   210,     0,     0,   211,     0,   212,   213,
     214,   215,   216,     0,     0,   217,   218,   219,     0,     0,
     220,   221,     0,   222,   223,   224,     0,     0,   225,     0,
       0,     0,   226,   227,     0,   228,     0,   229,     0,   230,
     231,   232,   233,     0,   234,     0,     0,     0,   235,   236,
       0,   237,     0,     0,   238,   239,     0,     0,     0,   240,
     241,   242,   243,     0,     0,   244,   245,     0,     0,   246,
       0,   247,     0,     0,     0,   248,   249,     0,     0,     0,
     250,     0,   251,   252,     0,   253,   254,     0,     0,     0,
     255,     0,     0,   256,   257,     0,     0,   258,     0,     0,
     259,   260,     0,     0,     0,     0,     0,   261,   262,     0,
     263,     0,   264,     0,   265,   266,     0,     0,     0,     0,
       0,     0,     0,   267,   268,   269,   270,   271,   272,   273,
     274,   275,   276,   277,   278,   279,     0,   280,   281,     0,
     282,   283,   284,   285,     0,   286,   287,   288,     0,     0,
       0,   289,   290,   291,   292,   293,     0,     0,   294,   295,
       0,   296,     0,   297,     0,   298,   299,   300,   301,   302,
     303,   304,   305,     0,     0,   306,   307,     0,     0,   308,
     309,   310,   311,     0,     0,     0,   312,   313,     0,     0,
       0,     0,   314,   315,   316,     0,   317,   318,   319,     0,
     320,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     321,   322,   323,     0,   324,   325,   326,   327,   328,   329,
     330,   331,   332,   333,   334,   335,     0,     0,   336,   337,
     338,     0,   339,     0,   340,   341,   342,   343,     0,   344,
     345,   346,     0,     0,   347,     0,     0,     0,   348,   349,
     350,   351,   352,     0,     0,   353,   354,   355,     0,   356,
     357,     0,   358,   359,   360,     0,     0,   361,     0,   362,
     363,   364,     0,   365,   366,     0,     0,     0,   367,   368,
     369,   370,   371,   372,   373,   374,   375,     0,   376,   377,
       0,     0,     0,   378,   379,   380,   381,     0,     0,     0,
     382,     0,     0,     0,   383,   384,   385,   386,     0,   387,
     388,   389,   390,   391,     0,     0,     0,     0,     0,     0,
     392,   393,     0,   394,     0,     0,   395,     0,     0,   396,
     397,   398,     0,     0,   399,   400,     0,   401,   402,   403,
     404,   405,     0,     0,   406,   407,   408,   409,     0,   410,
     411,     0,     0,   412,   413,   414,     0,     0,   415,   416,
       0,   417,   418,   419,   420,     0,     0,     0,     0,     0,
     421,   422,     0,     0,     0,   423,   424,   425,   426,     0,
     427,   428,     0,   429,   430,     0,   431,   432,     0,     0,
     433,     0,     0,   434,     0,   435,     0,   436,   437,     0,
       0,     0,     0,     0,     0,   438,     0,     0,   439,     0,
       0,     0,   440,   441,   442,   443,     0,     0,     0,     0,
     444,   445,     0,   446,   447,     0,     0,   448,     0,     0,
       0,     0,   138,     0,   139,   140,   141,   142,   143,     0,
       0,     0,     0,     0,   144,  4055,   718,   145,     0,   146,
     147,   148,   149,   150,   151,   152,     0,   153,     0,     0,
       0,   154,     0,     0,     0,   155,     0,     0,   156,   157,
     158,     0,   159,     0,   160,   161,     0,     0,   162,     0,
       0,   163,     0,   164,   165,     0,   166,     0,   167,   168,
     169,   170,   171,     0,   172,   173,     0,   174,   175,   176,
     177,   178,   179,   180,     0,   181,   182,     0,   183,   184,
       0,   185,     0,     0,   186,     0,     0,   187,     0,     0,
       0,     0,     0,     0,   188,   189,   190,     0,     0,   191,
       0,     0,     0,     0,   192,   193,     0,     0,     0,     0,
     194,     0,   195,     0,     0,     0,   196,     0,   197,   198,
     199,   200,     0,     0,     0,   201,     0,     0,   202,   203,
     204,     0,     0,     0,   205,     0,   206,   207,     0,   208,
     209,   210,     0,     0,   211,     0,   212,   213,   214,   215,
     216,     0,     0,   217,   218,   219,     0,     0,   220,   221,
       0,   222,   223,   224,     0,     0,   225,     0,     0,     0,
     226,   227,     0,   228,     0,   229,     0,   230,   231,   232,
     233,     0,   234,     0,     0,     0,   235,   236,     0,   237,
       0,     0,   238,   239,     0,     0,     0,   240,   241,   242,
     243,     0,     0,   244,   245,     0,     0,   246,     0,   247,
       0,     0,     0,   248,   249,     0,     0,     0,   250,     0,
     251,   252,     0,   253,   254,     0,     0,     0,   255,     0,
       0,   256,   257,     0,     0,   258,     0,     0,   259,   260,
       0,     0,     0,     0,     0,   261,   262,     0,   263,     0,
     264,     0,   265,   266,     0,     0,     0,     0,     0,     0,
       0,   267,   268,   269,   270,   271,   272,   273,   274,   275,
     276,   277,   278,   279,     0,   280,   281,     0,   282,   283,
     284,   285,     0,   286,   287,   288,     0,     0,     0,   289,
     290,   291,   292,   293,     0,     0,   294,   295,     0,   296,
       0,   297,     0,   298,   299,   300,   301,   302,   303,   304,
     305,     0,     0,   306,   307,     0,     0,   308,   309,   310,
     311,     0,     0,     0,   312,   313,     0,     0,     0,     0,
     314,   315,   316,     0,   317,   318,   319,     0,   320,     0,
       0,     0,     0,     0,     0,     0,     0,     0,   321,   322,
     323,     0,   324,   325,   326,   327,   328,   329,   330,   331,
     332,   333,   334,   335,     0,     0,   336,   337,   338,     0,
     339,     0,   340,   341,   342,   343,     0,   344,   345,   346,
       0,     0,   347,     0,     0,     0,   348,   349,   350,   351,
     352,     0,     0,   353,   354,   355,     0,   356,   357,     0,
     358,   359,   360,     0,     0,   361,     0,   362,   363,   364,
       0,   365,   366,     0,     0,     0,   367,   368,   369,   370,
     371,   372,   373,   374,   375,     0,   376,   377,     0,     0,
       0,   378,   379,   380,   381,     0,     0,     0,   382,     0,
       0,     0,   383,   384,   385,   386,     0,   387,   388,   389,
     390,   391,     0,     0,     0,     0,     0,     0,   392,   393,
       0,   394,     0,     0,   395,     0,     0,   396,   397,   398,
       0,     0,   399,   400,     0,   401,   402,   403,   404,   405,
       0,     0,   406,   407,   408,   409,     0,   410,   411,     0,
       0,   412,   413,   414,     0,     0,   415,   416,     0,   417,
     418,   419,   420,     0,     0,     0,     0,     0,   421,   422,
       0,     0,     0,   423,   424,   425,   426,     0,   427,   428,
       0,   429,   430,     0,   431,   432,     0,     0,   433,     0,
       0,   434,     0,   435,     0,   436,   437,     0,     0,     0,
       0,     0,     0,   438,     0,     0,   439,     0,     0,     0,
     440,   441,   442,   443,     0,     0,     0,     0,   444,   445,
       0,   446,   447,     0,     0,   448,     0,     0,   138,     0,
     139,   140,   141,   142,   143,     0,     0,     0,     0,     0,
     144,     0,     0,   145,   494,   146,   147,   148,   149,   150,
     151,   152,     0,   153,     0,     0,     0,   154,     0,     0,
       0,   155,     0,     0,   156,   157,   158,     0,   159,     0,
     160,   161,     0,     0,   162,     0,     0,   163,     0,   164,
     165,     0,   166,     0,   167,   168,   169,   170,   171,     0,
     172,   173,     0,   174,   175,   176,   177,   178,   179,   180,
       0,   181,   182,     0,   183,   184,     0,   185,     0,     0,
     186,     0,     0,   187,     0,     0,     0,     0,     0,     0,
     188,   189,   190,     0,     0,   191,     0,     0,     0,     0,
     192,   193,     0,     0,     0,     0,   194,     0,   195,     0,
       0,     0,   196,     0,   197,   198,   199,   200,     0,     0,
       0,   201,     0,     0,   202,   203,   204,     0,     0,     0,
     205,     0,   206,   207,     0,   208,   209,   210,     0,     0,
     211,     0,   212,   213,   214,   215,   216,     0,     0,   217,
     554,   219,     0,     0,   220,   221,     0,   222,   223,   224,
       0,     0,   225,     0,     0,     0,   226,   227,     0,   228,
       0,   229,     0,   230,   231,   232,   233,     0,   234,     0,
       0,     0,   235,   236,     0,   237,     0,     0,   238,   239,
       0,     0,     0,   240,   241,   242,   243,     0,     0,   244,
     245,     0,     0,   246,     0,   247,     0,     0,     0,   248,
     249,     0,     0,     0,   250,     0,   251,   252,     0,   253,
     254,     0,     0,     0,   255,     0,     0,   256,   257,     0,
       0,   258,     0,     0,   259,   260,     0,     0,     0,     0,
       0,   261,   262,     0,   263,     0,   264,     0,   265,   266,
       0,     0,     0,     0,     0,     0,     0,   267,   268,   269,
     270,   271,   272,   273,   274,   275,   276,   277,   278,   279,
       0,   280,   281,     0,   282,   283,   284,   285,     0,   286,
     287,   288,     0,     0,     0,   289,   290,   291,   292,   293,
       0,     0,   294,   295,     0,   296,     0,   297,     0,   298,
     299,   300,   301,   302,   303,   304,   305,     0,     0,   306,
     307,     0,     0,   308,   309,   310,   311,     0,     0,     0,
     312,   313,     0,     0,     0,     0,   314,   315,   316,     0,
     317,   318,   319,     0,   320,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   321,   322,   323,     0,   324,   325,
     326,   555,   328,   329,   330,   331,   332,   333,   334,   335,
       0,     0,   336,   337,   338,     0,   339,     0,   340,   341,
     342,   343,     0,   344,   345,   346,     0,     0,   347,     0,
       0,     0,   348,   349,   350,   351,   352,     0,     0,   353,
     354,   355,     0,   356,   357,     0,   358,   359,   360,     0,
       0,   361,     0,   362,   363,   364,     0,   365,   366,     0,
       0,     0,   367,   368,   369,   370,   371,   372,   373,   374,
     375,     0,   376,   377,     0,     0,     0,   378,   379,   380,
     381,     0,     0,     0,   382,     0,     0,     0,   383,   384,
     385,   386,     0,   387,   388,   389,   390,   391,     0,     0,
       0,     0,     0,     0,   392,   393,     0,   394,     0,     0,
     395,     0,     0,   396,   397,   398,     0,     0,   399,   400,
       0,   401,   402,   403,   404,   405,     0,     0,   406,   407,
     408,   409,     0,   410,   411,     0,     0,   412,   413,   414,
       0,     0,   415,   416,     0,   417,   418,   419,   420,     0,
       0,     0,     0,     0,   421,   422,     0,     0,     0,   423,
     424,   425,   426,     0,   427,   428,     0,   429,   430,     0,
     431,   432,     0,     0,   433,     0,     0,   434,     0,   435,
       0,   436,   437,     0,     0,     0,     0,     0,     0,   438,
       0,     0,   439,     0,     0,     0,   440,   441,   442,   443,
       0,     0,     0,     0,   444,   445,     0,   446,   447,     0,
       0,   448,     0,     0,   138,     0,   139,   140,   141,   142,
     143,     0,     0,     0,     0,     0,   144,     0,     0,   145,
     494,   146,   147,   148,   149,   150,   151,   152,     0,   153,
       0,     0,     0,   154,     0,     0,     0,   155,     0,     0,
     156,   157,   158,     0,   159,     0,   160,   161,     0,     0,
     162,     0,     0,   163,     0,   164,   165,     0,   166,     0,
     167,   168,   169,   170,   171,     0,   172,   173,     0,   174,
     175,   176,   177,   178,   179,   180,     0,   181,   182,     0,
     183,   184,     0,   185,     0,     0,   186,     0,     0,   187,
       0,     0,     0,     0,     0,     0,   188,   189,   190,     0,
       0,   191,     0,     0,     0,     0,   192,   193,     0,     0,
       0,     0,   194,     0,   195,     0,     0,     0,   196,     0,
     197,   198,   199,   200,     0,     0,     0,   201,     0,     0,
     202,   203,   204,     0,     0,     0,   205,     0,   206,   207,
       0,   208,   209,   210,     0,     0,   211,     0,   212,   213,
     214,   215,   216,     0,     0,   217,   218,   219,     0,     0,
     220,   221,     0,   222,   223,   224,     0,     0,   225,     0,
       0,     0,   226,   227,     0,   228,     0,   229,     0,   230,
     231,   232,   233,     0,   234,     0,     0,     0,   235,   236,
       0,   237,     0,     0,   238,   239,     0,     0,     0,   240,
     241,   242,   243,     0,     0,   244,   245,     0,     0,   246,
       0,   247,     0,     0,     0,   248,   249,     0,     0,     0,
     250,     0,   251,   252,     0,   253,   254,     0,     0,     0,
     255,     0,     0,   256,   257,     0,     0,   258,     0,     0,
     259,   260,     0,     0,     0,     0,     0,   261,   262,     0,
     263,     0,   264,     0,   265,   266,     0,     0,     0,     0,
       0,     0,     0,   267,   268,   269,   270,   271,   272,   273,
     274,   275,   276,   277,   278,   279,     0,   280,   281,     0,
     282,   283,   284,   285,     0,   286,   287,   288,     0,     0,
       0,   289,   290,   291,   292,   293,     0,     0,   294,   295,
       0,   296,     0,   297,     0,   298,   299,   300,   301,   302,
     303,   304,   305,     0,     0,   306,   307,     0,     0,   308,
     309,   310,   311,     0,     0,     0,   312,   313,     0,     0,
       0,     0,   314,   315,   316,     0,   317,   318,   319,     0,
     320,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     321,   322,   323,     0,   324,   325,   326,   327,   328,   329,
     330,   331,   332,   333,   334,   335,     0,     0,   336,   337,
     338,     0,   339,     0,   340,   341,   342,   343,     0,   344,
     345,   346,     0,     0,   347,     0,     0,     0,   348,   349,
     350,   351,   352,     0,     0,   353,   354,   355,     0,   356,
     357,     0,   358,   359,   360,     0,     0,   361,     0,   362,
     363,   364,     0,   365,   366,     0,     0,     0,   367,   368,
     369,   370,   371,   372,   373,   374,   375,     0,   376,   377,
       0,     0,     0,   378,   379,   380,   381,     0,     0,     0,
     382,     0,     0,     0,   383,   384,   385,   386,     0,   387,
     388,   389,   390,   391,     0,     0,     0,     0,     0,     0,
     392,   393,     0,   394,     0,     0,   395,     0,     0,   396,
     397,   398,     0,     0,   399,   400,     0,   401,   402,   403,
     404,   405,     0,     0,   406,   407,   408,   409,     0,   410,
     411,     0,     0,   412,   413,   414,     0,     0,   415,   416,
       0,   417,   418,   419,   420,     0,     0,     0,     0,     0,
     421,   422,     0,     0,     0,   423,   424,   425,   426,     0,
     427,   428,     0,   429,   430,     0,   431,   432,     0,     0,
     433,     0,     0,   434,     0,   435,     0,   436,   437,     0,
       0,     0,     0,     0,     0,   438,     0,     0,   439,     0,
       0,     0,   440,   441,   442,   443,     0,     0,     0,     0,
     444,   445,     0,   446,   447,     0,     0,   448,     0,     0,
     138,     0,   139,   140,   141,   142,   143,     0,     0,     0,
       0,     0,   144,     0,     0,   145,   718,   146,   147,   148,
     149,   150,   151,   152,     0,   153,     0,     0,     0,   154,
       0,     0,     0,   155,     0,     0,   156,   157,   158,     0,
     159,     0,   160,   161,     0,     0,   162,     0,     0,   163,
       0,   164,   165,     0,   166,     0,   167,   168,   169,   170,
     171,     0,   172,   173,     0,   174,   175,   176,   177,   178,
     179,   180,     0,   181,   182,     0,   183,   184,     0,   185,
       0,     0,   186,     0,     0,   187,     0,     0,     0,     0,
       0,     0,   188,   189,   190,     0,     0,   191,     0,     0,
       0,     0,   192,   193,     0,     0,     0,     0,   194,     0,
     195,     0,     0,     0,   196,     0,   197,   198,   199,   200,
       0,     0,     0,   201,     0,     0,   202,   203,   204,     0,
       0,     0,   205,     0,   206,   207,     0,   208,   209,   210,
       0,     0,   211,     0,   212,   213,   214,   215,   216,     0,
       0,   217,   218,   219,     0,     0,   220,   221,     0,   222,
     223,   224,     0,     0,   225,     0,     0,     0,   226,   227,
       0,   228,     0,   229,     0,   230,   231,   232,   233,     0,
     234,     0,     0,     0,   235,   236,     0,   237,     0,     0,
     238,   239,     0,     0,     0,   240,   241,   242,   243,     0,
       0,   244,   245,     0,     0,   246,     0,   247,     0,     0,
       0,   248,   249,     0,     0,     0,   250,     0,   251,   252,
       0,   253,   254,     0,     0,     0,   255,     0,     0,   256,
     257,     0,     0,   258,     0,     0,   259,   260,     0,     0,
       0,     0,     0,   261,   262,     0,   263,     0,   264,     0,
     265,   266,     0,     0,     0,     0,     0,     0,     0,   267,
     268,   269,   270,   271,   272,   273,   274,   275,   276,   277,
     278,   279,     0,   280,   281,     0,   282,   283,   284,   285,
       0,   286,   287,   288,     0,     0,     0,   289,   290,   291,
     292,   293,     0,     0,   294,   295,     0,   296,     0,   297,
       0,   298,   299,   300,   301,   302,   303,   304,   305,     0,
       0,   306,   307,     0,     0,   308,   309,   310,   311,     0,
       0,     0,   312,   313,     0,     0,     0,     0,   314,   315,
     316,     0,   317,   318,   319,     0,   320,     0,     0,     0,
       0,     0,     0,     0,     0,     0,   321,   322,   323,     0,
     324,   325,   326,   327,   328,   329,   330,   331,   332,   333,
     334,   335,     0,     0,   336,   337,   338,     0,   339,     0,
     340,   341,   342,   343,     0,   344,   345,   346,     0,     0,
     347,     0,     0,     0,   348,   349,   350,   351,   352,     0,
       0,   353,   354,   355,     0,   356,   357,     0,   358,   359,
     360,     0,     0,   361,     0,   362,   363,   364,     0,   365,
     366,     0,     0,     0,   367,   368,   369,   370,   371,   372,
     373,   374,   375,     0,   376,   377,     0,     0,     0,   378,
     379,   380,   381,     0,     0,     0,   382,     0,     0,     0,
     383,   384,   385,   386,     0,   387,   388,   389,   390,   391,
       0,     0,     0,     0,     0,     0,   392,   393,     0,   394,
       0,     0,   395,     0,     0,   396,   397,   398,     0,     0,
     399,   400,     0,   401,   402,   403,   404,   405,     0,     0,
     406,   407,   408,   409,     0,   410,   411,     0,     0,   412,
     413,   414,     0,     0,   415,   416,     0,   417,   418,   419,
     420,     0,     0,     0,     0,     0,   421,   422,     0,     0,
       0,   423,   424,   425,   426,     0,   427,   428,     0,   429,
     430,     0,   431,   432,     0,     0,   433,     0,     0,   434,
       0,   435,     0,   436,   437,     0,     0,     0,     0,     0,
       0,   438,     0,     0,   439,     0,     0,     0,   440,   441,
     442,   443,     0,     0,     0,     0,   444,   445,     0,   446,
     447,     0,     0,   448,     0,     0,   138,     0,   139,   140,
     141,   142,   143,     0,     0,     0,     0,     0,   144,     0,
       0,   145,  2333,   146,   147,   148,   149,   150,   151,   152,
       0,   153,     0,     0,     0,   154,     0,     0,     0,   155,
       0,     0,   156,   157,   158,     0,   159,     0,   160,   161,
       0,     0,   162,     0,     0,   163,     0,   164,   165,     0,
     166,     0,   167,   168,   169,   170,   171,     0,   172,   173,
       0,   174,   175,   176,   177,   178,   179,   180,     0,   181,
     182,     0,   183,   184,     0,   185,     0,     0,   186,     0,
       0,   187,     0,     0,     0,     0,     0,     0,   188,   189,
     190,     0,     0,   191,     0,     0,     0,     0,   192,   193,
       0,     0,     0,     0,   194,     0,   195,     0,     0,     0,
     196,     0,   197,   198,   199,   200,     0,     0,     0,   201,
       0,     0,   202,   203,   204,     0,     0,     0,   205,     0,
     206,   207,     0,   208,   209,   210,     0,     0,   211,     0,
     212,   213,   214,   215,   216,     0,     0,   217,   218,   219,
       0,     0,   220,   221,     0,   222,   223,   224,     0,     0,
     225,     0,     0,     0,   226,   227,     0,   228,     0,   229,
       0,   230,   231,   232,   233,     0,   234,     0,     0,     0,
     235,   236,     0,   237,     0,     0,   238,   239,     0,     0,
       0,   240,   241,   242,   243,     0,     0,   244,   245,     0,
       0,   246,     0,   247,     0,     0,     0,   248,   249,     0,
       0,     0,   250,     0,   251,   252,     0,   253,   254,     0,
       0,     0,   255,     0,     0,   256,   257,     0,     0,   258,
       0,     0,   259,   260,   566,     0,     0,     0,     0,   261,
     262,     0,   263,     0,   264,     0,   265,   266,     0,     0,
       0,     0,     0,     0,     0,   267,   268,   269,   270,   271,
     272,   273,   274,   275,   276,   277,   278,   279,     0,   280,
     281,     0,   282,   283,   284,   285,     0,   286,   287,   288,
       0,     0,     0,   289,   290,   291,   292,   293,     0,     0,
     294,   295,     0,   296,     0,   297,     0,   298,   299,   300,
     301,   302,   303,   304,   305,     0,     0,   306,   307,     0,
       0,   308,   309,   310,   311,     0,     0,     0,   312,   313,
       0,     0,     0,     0,   314,   315,   316,     0,   317,   318,
     319,     0,   320,     0,     0,     0,     0,     0,     0,     0,
       0,     0,   321,   322,   323,     0,   324,   325,   326,   327,
     328,   329,   330,   331,   332,   333,   334,   335,     0,     0,
     336,   337,   338,     0,   339,     0,   340,   341,   342,   343,
       0,   344,   345,   346,     0,     0,   347,     0,     0,     0,
     348,   349,   350,   351,   352,     0,     0,   353,   354,   355,
       0,   356,   357,     0,   358,   359,   360,     0,     0,   361,
       0,   362,   363,   364,     0,   365,   366,     0,     0,     0,
     367,   368,   369,   370,   371,   372,   373,   374,   375,     0,
     376,   377,     0,     0,     0,   378,   379,   380,   381,     0,
       0,     0,   382,     0,     0,     0,   383,   384,   385,   386,
       0,   387,   388,   389,   390,   391,     0,     0,     0,     0,
       0,     0,   392,   393,     0,   394,     0,     0,   395,     0,
       0,   396,   397,   398,     0,     0,   399,   400,     0,   401,
     402,   403,   404,   405,     0,     0,   406,   407,   408,   409,
       0,   410,   411,     0,     0,   412,   413,   414,     0,   135,
     415,   416,     0,   417,   418,   419,   420,     0,     0,     0,
       0,     0,   421,   422,     0,     0,     0,   423,   424,   425,
     426,     0,   427,   428,     0,   429,   430,     0,   431,   432,
       0,     0,   433,     0,     0,   434,     0,   435,     0,   436,
     437,     0,     0,     0,     0,     0,     0,   438,     0,     0,
     439,     0,     0,     0,   440,   441,   442,   443,     0,     0,
       0,     0,   444,   445,     0,   446,   447,     0,     0,   448,
       0,   138,     0,   139,   140,   141,   142,   143,     0,     0,
       0,     0,     0,   144,     0,     0,   145,  1570,   146,   147,
     148,   149,   150,   151,   152,     0,   153,     0,     0,     0,
     154,     0,     0,     0,   155,     0,     0,   156,   157,   158,
       0,   159,     0,   160,   161,     0,     0,   162,     0,     0,
     163,     0,   164,   165,     0,   166,     0,   167,   168,   169,
     170,   171,     0,   172,   173,     0,   174,   175,   176,   177,
     178,   179,   180,     0,   181,   182,     0,   183,   184,     0,
     185,     0,     0,   186,     0,     0,   187,     0,     0,     0,
       0,     0,     0,   188,   189,   190,     0,     0,   191,     0,
       0,     0,     0,   192,   193,     0,     0,     0,     0,   194,
       0,   195,     0,     0,     0,   196,     0,   197,   198,   199,
     200,     0,     0,     0,   201,     0,     0,   202,   203,   204,
       0,     0,     0,   205,     0,   206,   207,     0,   208,   209,
     210,     0,     0,   211,     0,   212,   213,   214,   215,   216,
       0,     0,   217,   218,   219,     0,     0,   220,   221,     0,
     222,   223,   224,     0,     0,   225,     0,     0,     0,   226,
     227,     0,   228,     0,   229,     0,   230,   231,   232,   233,
       0,   234,     0,     0,     0,   235,   236,     0,   237,     0,
       0,   238,   239,     0,     0,     0,   240,   241,   242,   243,
       0,     0,   244,   245,     0,     0,   246,     0,   247,     0,
       0,     0,   248,   249,     0,     0,     0,   250,     0,   251,
     252,     0,   253,   254,     0,     0,     0,   255,     0,     0,
     256,   257,     0,     0,   258,     0,     0,   259,   260,   566,
       0,     0,     0,     0,   261,   262,     0,   263,     0,   264,
       0,   265,   266,     0,     0,     0,     0,     0,     0,     0,
     267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
     277,   278,   279,     0,   280,   281,     0,   282,   283,   284,
     285,     0,   286,   287,   288,     0,     0,     0,   289,   290,
     291,   292,   293,     0,     0,   294,   295,     0,   296,     0,
     297,     0,   298,   299,   300,   301,   302,   303,   304,   305,
       0,     0,   306,   307,     0,     0,   308,   309,   310,   311,
       0,     0,     0,   312,   313,     0,     0,     0,     0,   314,
     315,   316,     0,   317,   318,   319,     0,   320,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   321,   322,   323,
       0,   324,   325,   326,   327,   328,   329,   330,   331,   332,
     333,   334,   335,     0,     0,   336,   337,   338,     0,   339,
       0,   340,   341,   342,   343,     0,   344,   345,   346,     0,
       0,   347,     0,     0,     0,   348,   349,   350,   351,   352,
       0,     0,   353,   354,   355,     0,   356,   357,     0,   358,
     359,   360,     0,     0,   361,     0,   362,   363,   364,     0,
     365,   366,     0,     0,     0,   367,   368,   369,   370,   371,
     372,   373,   374,   375,     0,   376,   377,     0,     0,     0,
     378,   379,   380,   381,     0,     0,     0,   382,     0,     0,
       0,   383,   384,   385,   386,     0,   387,   388,   389,   390,
     391,     0,     0,     0,     0,     0,     0,   392,   393,     0,
     394,     0,     0,   395,     0,     0,   396,   397,   398,     0,
       0,   399,   400,     0,   401,   402,   403,   404,   405,     0,
       0,   406,   407,   408,   409,     0,   410,   411,     0,     0,
     412,   413,   414,     0,   135,   415,   416,     0,   417,   418,
     419,   420,     0,     0,     0,     0,     0,   421,   422,     0,
       0,     0,   423,   424,   425,   426,     0,   427,   428,     0,
     429,   430,     0,   431,   432,     0,     0,   433,     0,     0,
     434,     0,   435,     0,   436,   437,     0,     0,     0,     0,
       0,     0,   438,     0,     0,   439,     0,     0,     0,   440,
     441,   442,   443,     0,     0,     0,     0,   444,   445,     0,
     446,   447,     0,     0,   448,     0,   138,     0,   139,   140,
     141,   142,   143,     0,     0,     0,     0,     0,   144,     0,
       0,   145,  2589,   146,   147,   148,   149,   150,   151,   152,
       0,   153,     0,     0,     0,   154,     0,     0,     0,   155,
       0,     0,   156,   157,   158,     0,   159,     0,   160,   161,
       0,     0,   162,     0,     0,   163,     0,   164,   165,     0,
     166,     0,   167,   168,   169,   170,   171,     0,   172,   173,
       0,   174,   175,   176,   177,   178,   179,   180,     0,   181,
     182,     0,   183,   184,     0,   185,     0,     0,   186,     0,
       0,   187,     0,     0,     0,     0,     0,     0,   188,   189,
     190,     0,     0,   191,     0,     0,     0,     0,   192,   193,
       0,     0,     0,     0,   194,     0,   195,     0,     0,     0,
     196,     0,   197,   198,   199,   200,     0,     0,     0,   201,
       0,     0,   202,   203,   204,     0,     0,     0,   205,     0,
     206,   207,     0,   208,   209,   210,     0,     0,   211,     0,
     212,   213,   214,   215,   216,     0,     0,   217,   218,   219,
       0,     0,   220,   221,     0,   222,   223,   224,     0,     0,
     225,     0,     0,     0,   226,   227,     0,   228,     0,   229,
       0,   230,   231,   232,   233,     0,   234,     0,     0,     0,
     235,   236,     0,   237,     0,     0,   238,   239,     0,     0,
       0,   240,   241,   242,   243,     0,     0,   244,   245,     0,
       0,   246,     0,   247,     0,     0,     0,   248,   249,     0,
       0,     0,   250,     0,   251,   252,     0,   253,   254,     0,
       0,     0,   255,     0,     0,   256,   257,     0,     0,   258,
       0,     0,   259,   260,   566,     0,     0,     0,     0,   261,
     262,     0,   263,     0,   264,     0,   265,   266,     0,     0,
       0,     0,     0,     0,     0,   267,   268,   269,   270,   271,
     272,   273,   274,   275,   276,   277,   278,   279,     0,   280,
     281,     0,   282,   283,   284,   285,     0,   286,   287,   288,
       0,     0,     0,   289,   290,   291,   292,   293,     0,     0,
     294,   295,     0,   296,     0,   297,     0,   298,   299,   300,
     301,   302,   303,   304,   305,     0,     0,   306,   307,     0,
       0,   308,   309,   310,   311,     0,     0,     0,   312,   313,
       0,     0,     0,     0,   314,   315,   316,     0,   317,   318,
     319,     0,   320,     0,     0,     0,     0,     0,     0,     0,
       0,     0,   321,   322,   323,     0,   324,   325,   326,   327,
     328,   329,   330,   331,   332,   333,   334,   335,     0,     0,
     336,   337,   338,     0,   339,     0,   340,   341,   342,   343,
       0,   344,   345,   346,     0,     0,   347,     0,     0,     0,
     348,   349,   350,   351,   352,     0,     0,   353,   354,   355,
       0,   356,   357,     0,   358,   359,   360,     0,     0,   361,
       0,   362,   363,   364,     0,   365,   366,     0,     0,     0,
     367,   368,   369,   370,   371,   372,   373,   374,   375,     0,
     376,   377,     0,     0,     0,   378,   379,   380,   381,     0,
       0,     0,   382,     0,     0,     0,   383,   384,   385,   386,
       0,   387,   388,   389,   390,   391,     0,     0,     0,     0,
       0,     0,   392,   393,     0,   394,     0,     0,   395,     0,
       0,   396,   397,   398,     0,     0,   399,   400,     0,   401,
     402,   403,   404,   405,     0,     0,   406,   407,   408,   409,
       0,   410,   411,     0,     0,   412,   413,   414,     0,   135,
     415,   416,     0,   417,   418,   419,   420,     0,     0,     0,
       0,     0,   421,   422,     0,     0,     0,   423,   424,   425,
     426,     0,   427,   428,     0,   429,   430,     0,   431,   432,
       0,     0,   433,     0,     0,   434,     0,   435,     0,   436,
     437,     0,     0,     0,     0,     0,     0,   438,     0,     0,
     439,     0,     0,     0,   440,   441,   442,   443,     0,     0,
       0,     0,   444,   445,     0,   446,   447,     0,     0,   448,
       0,   138,     0,   139,   140,   141,   142,   143,     0,     0,
       0,     0,     0,   144,     0,     0,     0,  3163,   146,   147,
     148,   149,   150,   151,     0,     0,  -295,     0,     0,     0,
     154,     0,     0,     0,   155,     0,     0,   156,   157,   158,
       0,   159,     0,     0,     0,     0,     0,   162,  3570,     0,
     163,     0,   164,     0,     0,     0,     0,   167,   168,  3571,
     170,   171,     0,   172,   173,     0,     0,   175,     0,   177,
     178,   179,   180,     0,   181,   182,     0,     0,   184,     0,
     185,     0,     0,   186,     0,     0,   187,     0,     0,     0,
       0,     0,     0,   188,   189,   190,     0,     0,   191,     0,
       0,     0,     0,   192,     0,     0,     0,     0,     0,   194,
       0,   195,     0,     0,     0,   196,     0,   197,   198,   199,
     200,     0,     0,     0,     0,     0,     0,   202,   203,   204,
       0,     0,     0,   205,     0,     0,   207,     0,   208,   209,
     210,     0,     0,   211,     0,   212,   213,   214,   215,     0,
       0,     0,   217,   218,   219,     0,     0,   220,   221,  3572,
     222,   223,   224,     0,     0,     0,     0,     0,     0,   226,
     227,     0,   228,     0,   229,     0,   230,   231,   232,   233,
       0,   234,     0,     0,     0,     0,   236,     0,     0,     0,
       0,     0,   239,     0,     0,     0,   240,   241,   242,   243,
    3573,     0,   244,   245,     0,     0,   246,     0,   247,     0,
       0,     0,   248,     0,     0,     0,     0,   250,     0,   251,
     252,     0,   253,   254,  3574,     0,     0,   255,     0,     0,
       0,   257,     0,     0,   258,  3575,     0,   259,   260,     0,
       0,     0,     0,     0,   261,   262,     0,   263,     0,   264,
       0,   265,   266,     0,     0,     0,     0,  -250,     0,     0,
     267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
     277,   278,   279,     0,   280,   281,     0,   282,   283,   284,
     285,     0,   286,   287,   288,     0,     0,     0,   289,   290,
     291,   292,   293,     0,     0,   294,   295,     0,   296,     0,
     297,     0,   298,   299,   300,   301,   302,   303,   304,   305,
       0,     0,   306,   307,     0,     0,   308,   309,   310,   311,
       0,     0,     0,     0,   313,     0,     0,     0,     0,   314,
     315,   316,     0,   317,   318,  3576,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,   322,   323,
       0,     0,   325,   326,   327,     0,   329,   330,   331,   332,
     333,   334,     0,     0,     0,     0,   337,   338,     0,   339,
       0,   340,   341,   342,   343,     0,   344,   345,   346,     0,
       0,   347,     0,     0,     0,   348,   349,   350,   351,   352,
       0,     0,   353,   354,   355,     0,   356,     0,     0,   358,
       0,   360,  -250,     0,   361,     0,     0,   363,     0,     0,
     365,   366,  3577,     0,     0,     0,   368,   369,   370,   371,
     372,   373,     0,   375,     0,   376,     0,     0,     0,     0,
     378,   379,   380,     0,     0,     0,     0,   382,     0,     0,
       0,   383,     0,   385,     0,     0,   387,     0,     0,   390,
     391,     0,     0,     0,     0,     0,     0,   392,   393,     0,
     394,     0,     0,   395,     0,     0,   396,     0,   398,     0,
       0,     0,   400,     0,   401,   402,   403,   404,   405,     0,
       0,   406,   407,   408,   409,     0,   410,   411,     0,     0,
     412,   413,   414,     0,     0,   415,   416,     0,   417,   418,
     419,   420,     0,     0,     0,     0,     0,   421,   422,     0,
       0,     0,     0,   424,   425,   426,     0,   427,   428,     0,
     429,   430,     0,     0,     0,     0,     0,   433,     0,     0,
     434,     0,     0,     0,   436,   437,     0,     0,     0,     0,
       0,     0,   438,     0,     0,   439,     0,     0,     0,   440,
     441,   442,   443,     0,     0,  -250,     0,   444,     0,     0,
     446,     0,     0,   138,   448,   139,   140,   141,   142,   143,
       0,     0,     0,     0,     0,   144,     0,  4080,   145,     0,
     146,   147,   148,   149,   150,   151,   152,     0,   153,     0,
       0,     0,   154,     0,     0,     0,   155,     0,     0,   156,
     157,   158,     0,   159,     0,   160,   161,     0,     0,   162,
       0,     0,   163,     0,   164,   165,     0,   166,     0,   167,
     168,   169,   170,   171,     0,   172,   173,     0,   174,   175,
     176,   177,   178,   179,   180,     0,   181,   182,     0,   183,
     184,     0,   185,     0,     0,   186,     0,     0,   187,     0,
       0,     0,     0,     0,     0,   188,   189,   190,     0,     0,
     191,     0,     0,     0,     0,   192,   193,     0,     0,     0,
       0,   194,     0,   195,     0,     0,     0,   196,     0,   197,
     198,   199,   200,     0,     0,     0,   201,     0,     0,   202,
     203,   204,     0,     0,     0,   205,     0,   206,   207,     0,
     208,   209,   210,     0,     0,   211,     0,   212,   213,   214,
     215,   216,     0,     0,   217,   218,   219,     0,     0,   220,
     221,     0,   222,   223,   224,     0,     0,   225,     0,     0,
       0,   226,   227,     0,   228,     0,   229,     0,   230,   231,
     232,   233,     0,   234,     0,     0,     0,   235,   236,     0,
     237,     0,     0,   238,   239,     0,     0,     0,   240,   241,
     242,   243,     0,     0,   244,   245,     0,     0,   246,     0,
     247,     0,     0,     0,   248,   249,     0,     0,     0,   250,
       0,   251,   252,     0,   253,   254,     0,     0,     0,   255,
       0,     0,   256,   257,     0,     0,   258,     0,     0,   259,
     260,     0,     0,     0,     0,     0,   261,   262,     0,   263,
       0,   264,     0,   265,   266,     0,     0,     0,     0,     0,
       0,     0,   267,   268,   269,   270,   271,   272,   273,   274,
     275,   276,   277,   278,   279,     0,   280,   281,     0,   282,
     283,   284,   285,     0,   286,   287,   288,     0,     0,     0,
     289,   290,   291,   292,   293,     0,     0,   294,   295,     0,
     296,     0,   297,     0,   298,   299,   300,   301,   302,   303,
     304,   305,     0,     0,   306,   307,     0,     0,   308,   309,
     310,   311,     0,     0,     0,   312,   313,     0,     0,     0,
       0,   314,   315,   316,     0,   317,   318,   319,     0,   320,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   321,
     322,   323,     0,   324,   325,   326,   327,   328,   329,   330,
     331,   332,   333,   334,   335,     0,     0,   336,   337,   338,
       0,   339,     0,   340,   341,   342,   343,     0,   344,   345,
     346,     0,     0,   347,     0,     0,     0,   348,   349,   350,
     351,   352,     0,     0,   353,   354,   355,     0,   356,   357,
       0,   358,   359,   360,     0,     0,   361,     0,   362,   363,
     364,     0,   365,   366,     0,     0,     0,   367,   368,   369,
     370,   371,   372,   373,   374,   375,     0,   376,   377,     0,
       0,     0,   378,   379,   380,   381,     0,     0,     0,   382,
       0,     0,     0,   383,   384,   385,   386,     0,   387,   388,
     389,   390,   391,     0,     0,     0,     0,     0,     0,   392,
     393,     0,   394,     0,     0,   395,     0,     0,   396,   397,
     398,     0,     0,   399,   400,     0,   401,   402,   403,   404,
     405,     0,     0,   406,   407,   408,   409,     0,   410,   411,
       0,     0,   412,   413,   414,     0,     0,   415,   416,     0,
     417,   418,   419,   420,     0,     0,     0,     0,     0,   421,
     422,     0,     0,     0,   423,   424,   425,   426,     0,   427,
     428,     0,   429,   430,     0,   431,   432,     0,     0,   433,
       0,     0,   434,     0,   435,     0,   436,   437,     0,     0,
       0,     0,     0,     0,   438,     0,     0,   439,     0,     0,
       0,   440,   441,   442,   443,     0,     0,     0,     0,   444,
     445,     0,   446,   447,     0,   138,   448,   139,   140,   141,
     142,   143,  1947,     0,     0,     0,     0,   144,     0,     0,
     145,     0,   146,   147,   148,   149,   150,   151,   152,     0,
     153,     0,     0,     0,   154,     0,     0,     0,   155,     0,
       0,   156,   157,   158,     0,   159,     0,   160,   161,     0,
       0,   162,     0,     0,   163,     0,   164,   165,     0,   166,
       0,   167,   168,   169,   170,   171,     0,   172,   173,     0,
     174,   175,   176,   177,   178,   179,   180,     0,   181,   182,
       0,   183,   184,     0,   185,     0,     0,   186,     0,     0,
     187,     0,     0,     0,     0,     0,     0,   188,   189,   190,
       0,     0,   191,     0,     0,     0,     0,   192,   193,     0,
       0,     0,     0,   194,     0,   195,     0,     0,     0,   196,
       0,   197,   198,   199,   200,     0,     0,     0,   201,     0,
       0,   202,   203,   204,     0,     0,     0,   205,     0,   206,
     207,     0,   208,   209,   210,     0,     0,   211,     0,   212,
     213,   214,   215,   216,     0,     0,   217,   218,   219,     0,
       0,   220,   221,     0,   222,   223,   224,     0,     0,   225,
       0,     0,     0,   226,   227,     0,   228,     0,   229,     0,
     230,   231,   232,   233,     0,   234,     0,     0,     0,   235,
     236,     0,   237,     0,     0,   238,   239,     0,     0,     0,
     240,   241,   242,   243,     0,     0,   244,   245,     0,     0,
     246,     0,   247,     0,     0,     0,   248,   249,     0,     0,
       0,   250,     0,   251,   252,     0,   253,   254,     0,     0,
       0,   255,     0,     0,   256,   257,     0,     0,   258,     0,
       0,   259,   260,     0,     0,     0,     0,     0,   261,   262,
       0,   263,     0,   264,     0,   265,   266,     0,     0,     0,
       0,     0,     0,     0,   267,   268,   269,   270,   271,   272,
     273,   274,   275,   276,   277,   278,   279,     0,   280,   281,
       0,   282,   283,   284,   285,     0,   286,   287,   288,     0,
       0,     0,   289,   290,   291,   292,   293,     0,     0,   294,
     295,     0,   296,     0,   297,     0,   298,   299,   300,   301,
     302,   303,   304,   305,     0,     0,   306,   307,     0,     0,
     308,   309,   310,   311,     0,     0,     0,   312,   313,     0,
       0,     0,     0,   314,   315,   316,     0,   317,   318,   319,
       0,   320,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   321,   322,   323,     0,   324,   325,   326,   327,   328,
     329,   330,   331,   332,   333,   334,   335,     0,     0,   336,
     337,   338,     0,   339,     0,   340,   341,   342,   343,     0,
     344,   345,   346,     0,     0,   347,     0,     0,     0,   348,
     349,   350,   351,   352,     0,     0,   353,   354,   355,     0,
     356,   357,     0,   358,   359,   360,     0,     0,   361,     0,
     362,   363,   364,     0,   365,   366,     0,     0,     0,   367,
     368,   369,   370,   371,   372,   373,   374,   375,     0,   376,
     377,     0,     0,     0,   378,   379,   380,   381,     0,     0,
       0,   382,     0,     0,     0,   383,   384,   385,   386,     0,
     387,   388,   389,   390,   391,     0,     0,     0,     0,     0,
       0,   392,   393,     0,   394,     0,     0,   395,     0,     0,
     396,   397,   398,     0,     0,   399,   400,     0,   401,   402,
     403,   404,   405,     0,     0,   406,   407,   408,   409,     0,
     410,   411,     0,     0,   412,   413,   414,     0,     0,   415,
     416,     0,   417,   418,   419,   420,     0,     0,     0,     0,
       0,   421,   422,     0,     0,     0,   423,   424,   425,   426,
       0,   427,   428,     0,   429,   430,     0,   431,   432,     0,
       0,   433,     0,     0,   434,     0,   435,     0,   436,   437,
       0,     0,     0,     0,     0,     0,   438,     0,     0,   439,
       0,     0,     0,   440,   441,   442,   443,     0,     0,     0,
       0,   444,   445,     0,   446,   447,     0,   138,   448,   139,
     140,   141,   142,   143,  2577,     0,     0,     0,     0,   144,
       0,     0,   145,     0,   146,   147,   148,   149,   150,   151,
     152,     0,   153,     0,     0,     0,   154,     0,     0,     0,
     155,     0,     0,   156,   157,   158,     0,   159,     0,   160,
     161,     0,     0,   162,     0,     0,   163,     0,   164,   165,
       0,   166,     0,   167,   168,   169,   170,   171,     0,   172,
     173,     0,   174,   175,   176,   177,   178,   179,   180,     0,
     181,   182,     0,   183,   184,     0,   185,     0,     0,   186,
       0,     0,   187,     0,     0,     0,     0,     0,     0,   188,
     189,   190,     0,     0,   191,     0,     0,     0,     0,   192,
     193,     0,     0,     0,     0,   194,     0,   195,     0,     0,
       0,   196,     0,   197,   198,   199,   200,     0,     0,     0,
     201,     0,     0,   202,   203,   204,     0,     0,     0,   205,
       0,   206,   207,     0,   208,   209,   210,     0,     0,   211,
       0,   212,   213,   214,   215,   216,     0,     0,   217,   218,
     219,     0,     0,   220,   221,     0,   222,   223,   224,     0,
       0,   225,     0,     0,     0,   226,   227,     0,   228,     0,
     229,     0,   230,   231,   232,   233,     0,   234,     0,     0,
       0,   235,   236,     0,   237,     0,     0,   238,   239,     0,
       0,     0,   240,   241,   242,   243,     0,     0,   244,   245,
       0,     0,   246,     0,   247,     0,     0,     0,   248,   249,
       0,     0,     0,   250,     0,   251,   252,     0,   253,   254,
       0,     0,     0,   255,     0,     0,   256,   257,     0,     0,
     258,     0,     0,   259,   260,     0,     0,     0,     0,     0,
     261,   262,     0,   263,     0,   264,     0,   265,   266,     0,
       0,     0,     0,     0,     0,     0,   267,   268,   269,   270,
     271,   272,   273,   274,   275,   276,   277,   278,   279,     0,
     280,   281,     0,   282,   283,   284,   285,     0,   286,   287,
     288,     0,     0,     0,   289,   290,   291,   292,   293,     0,
       0,   294,   295,     0,   296,     0,   297,     0,   298,   299,
     300,   301,   302,   303,   304,   305,     0,     0,   306,   307,
       0,     0,   308,   309,   310,   311,     0,     0,     0,   312,
     313,     0,     0,     0,     0,   314,   315,   316,     0,   317,
     318,   319,     0,   320,     0,     0,     0,     0,     0,     0,
       0,     0,     0,   321,   322,   323,     0,   324,   325,   326,
     327,   328,   329,   330,   331,   332,   333,   334,   335,     0,
       0,   336,   337,   338,     0,   339,     0,   340,   341,   342,
     343,     0,   344,   345,   346,     0,     0,   347,     0,     0,
       0,   348,   349,   350,   351,   352,     0,     0,   353,   354,
     355,     0,   356,   357,     0,   358,   359,   360,     0,     0,
     361,     0,   362,   363,   364,     0,   365,   366,     0,     0,
       0,   367,   368,   369,   370,   371,   372,   373,   374,   375,
       0,   376,   377,     0,     0,     0,   378,   379,   380,   381,
       0,     0,     0,   382,     0,     0,     0,   383,   384,   385,
     386,     0,   387,   388,   389,   390,   391,     0,     0,     0,
       0,     0,     0,   392,   393,     0,   394,     0,     0,   395,
       0,     0,   396,   397,   398,     0,     0,   399,   400,     0,
     401,   402,   403,   404,   405,     0,     0,   406,   407,   408,
     409,     0,   410,   411,     0,     0,   412,   413,   414,     0,
       0,   415,   416,     0,   417,   418,   419,   420,     0,     0,
       0,     0,     0,   421,   422,     0,     0,     0,   423,   424,
     425,   426,     0,   427,   428,     0,   429,   430,     0,   431,
     432,     0,     0,   433,     0,     0,   434,     0,   435,     0,
     436,   437,     0,     0,     0,     0,     0,     0,   438,     0,
       0,   439,     0,     0,     0,   440,   441,   442,   443,     0,
       0,     0,     0,   444,   445,     0,   446,   447,     0,   138,
     448,   139,   140,   141,   142,   143,  2864,     0,     0,     0,
       0,   144,     0,     0,   145,     0,   146,   147,   148,   149,
     150,   151,   152,     0,   153,     0,     0,     0,   154,     0,
       0,     0,   155,     0,     0,   156,   157,   158,     0,   159,
       0,   160,   161,     0,     0,   162,     0,     0,   163,     0,
     164,   165,     0,   166,     0,   167,   168,   169,   170,   171,
       0,   172,   173,     0,   174,   175,   176,   177,   178,   179,
     180,     0,   181,   182,     0,   183,   184,     0,   185,     0,
       0,   186,     0,     0,   187,     0,     0,     0,     0,     0,
       0,   188,   189,   190,     0,     0,   191,     0,     0,     0,
       0,   192,   193,     0,     0,     0,     0,   194,     0,   195,
       0,     0,     0,   196,     0,   197,   198,   199,   200,     0,
       0,     0,   201,     0,     0,   202,   203,   204,     0,     0,
       0,   205,     0,   206,   207,     0,   208,   209,   210,     0,
       0,   211,     0,   212,   213,   214,   215,   216,     0,     0,
     217,   218,   219,     0,     0,   220,   221,     0,   222,   223,
     224,     0,     0,   225,     0,     0,     0,   226,   227,     0,
     228,     0,   229,     0,   230,   231,   232,   233,     0,   234,
       0,     0,     0,   235,   236,     0,   237,     0,     0,   238,
     239,     0,     0,     0,   240,   241,   242,   243,     0,     0,
     244,   245,     0,     0,   246,     0,   247,     0,     0,     0,
     248,   249,     0,     0,     0,   250,     0,   251,   252,     0,
     253,   254,     0,     0,     0,   255,     0,     0,   256,   257,
       0,     0,   258,     0,     0,   259,   260,     0,     0,     0,
       0,     0,   261,   262,     0,   263,     0,   264,     0,   265,
     266,     0,     0,     0,     0,     0,     0,     0,   267,   268,
     269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
     279,     0,   280,   281,     0,   282,   283,   284,   285,     0,
     286,   287,   288,     0,     0,     0,   289,   290,   291,   292,
     293,     0,     0,   294,   295,     0,   296,     0,   297,     0,
     298,   299,   300,   301,   302,   303,   304,   305,     0,     0,
     306,   307,     0,     0,   308,   309,   310,   311,     0,     0,
       0,   312,   313,     0,     0,     0,     0,   314,   315,   316,
       0,   317,   318,   319,     0,   320,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   321,   322,   323,     0,   324,
     325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
     335,     0,     0,   336,   337,   338,     0,   339,     0,   340,
     341,   342,   343,     0,   344,   345,   346,     0,     0,   347,
       0,     0,     0,   348,   349,   350,   351,   352,     0,     0,
     353,   354,   355,     0,   356,   357,     0,   358,   359,   360,
       0,     0,   361,     0,   362,   363,   364,     0,   365,   366,
       0,     0,     0,   367,   368,   369,   370,   371,   372,   373,
     374,   375,     0,   376,   377,     0,     0,     0,   378,   379,
     380,   381,     0,     0,     0,   382,     0,     0,     0,   383,
     384,   385,   386,     0,   387,   388,   389,   390,   391,     0,
       0,     0,     0,     0,     0,   392,   393,     0,   394,     0,
       0,   395,     0,     0,   396,   397,   398,     0,     0,   399,
     400,     0,   401,   402,   403,   404,   405,     0,     0,   406,
     407,   408,   409,     0,   410,   411,     0,     0,   412,   413,
     414,     0,     0,   415,   416,     0,   417,   418,   419,   420,
       0,     0,     0,     0,     0,   421,   422,     0,     0,     0,
     423,   424,   425,   426,     0,   427,   428,     0,   429,   430,
       0,   431,   432,     0,     0,   433,     0,     0,   434,     0,
     435,     0,   436,   437,     0,     0,     0,     0,     0,     0,
     438,     0,     0,   439,     0,     0,     0,   440,   441,   442,
     443,     0,     0,     0,     0,   444,   445,     0,   446,   447,
       0,   138,   448,   139,   140,   141,   142,   143,  3168,     0,
       0,     0,     0,   144,     0,     0,   145,     0,   146,   147,
     148,   149,   150,   151,   152,     0,   153,     0,     0,     0,
     154,     0,     0,     0,   155,     0,     0,   156,   157,   158,
       0,   159,     0,   160,   161,     0,     0,   162,     0,     0,
     163,     0,   164,   165,     0,   166,     0,   167,   168,   169,
     170,   171,     0,   172,   173,     0,   174,   175,   176,   177,
     178,   179,   180,     0,   181,   182,     0,   183,   184,     0,
     185,     0,     0,   186,     0,     0,   187,     0,     0,     0,
       0,     0,     0,   188,   189,   190,     0,     0,   191,     0,
       0,     0,     0,   192,   193,  2247,     0,     0,     0,   194,
       0,   195,     0,     0,     0,   196,     0,   197,   198,   199,
     200,     0,     0,     0,   201,     0,     0,   202,   203,   204,
       0,     0,     0,   205,     0,   206,   207,     0,   208,   209,
     210,     0,     0,   211,     0,   212,   213,   214,   215,   216,
       0,     0,   217,   218,   219,     0,     0,   220,   221,     0,
     222,   223,   224,  2248,     0,   225,     0,     0,     0,   226,
     227,     0,   228,     0,   229,     0,   230,   231,   232,   233,
       0,   234,     0,     0,     0,   235,   236,     0,   237,  2249,
       0,   238,   239,     0,     0,     0,   240,   241,   242,   243,
       0,     0,   244,   245,     0,     0,   246,     0,   247,     0,
       0,     0,   248,   249,     0,     0,     0,   250,     0,   251,
     252,     0,   253,   254,     0,     0,     0,   255,     0,     0,
     256,   257,     0,     0,   258,     0,     0,   259,   260,     0,
       0,     0,     0,     0,   261,   262,     0,   263,     0,   264,
       0,   265,   266,     0,     0,  2250,     0,     0,     0,     0,
     267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
     277,   278,   279,     0,   280,   281,     0,   282,   283,   284,
     285,     0,   286,   287,   288,     0,     0,     0,   289,   290,
     291,   292,   293,     0,     0,   294,   295,     0,   296,     0,
     297,     0,   298,   299,   300,   301,   302,   303,   304,   305,
       0,     0,   306,   307,     0,     0,   308,   309,   310,   311,
     958,   959,     0,   312,   313,     0,     0,  2251,     0,   314,
     315,   316,     0,   317,   318,   319,     0,   320,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   321,   322,   323,
       0,   324,   325,   326,   327,   328,   329,   330,   331,   332,
     333,   334,   335,     0,     0,   336,   337,   338,     0,   339,
       0,   340,   341,   342,   343,     0,   344,   345,   346,     0,
       0,   347,     0,     0,     0,   348,   349,   350,   351,   352,
       0,     0,   353,   354,   355,     0,   356,   357,     0,   358,
     359,   360,     0,     0,   361,     0,   362,   363,   364,     0,
     365,   366,     0,     0,     0,   367,   368,   369,   370,   371,
     372,   373,   374,   375,     0,   376,   377,     0,     0,     0,
     378,   379,   380,   381,     0,     0,     0,   382,     0,     0,
       0,   383,   384,   385,   386,     0,   387,   388,   389,   390,
     391,     0,     0,  4064,  4048,  4065,     0,   392,   393,     0,
     394,     0,     0,   395,     0,     0,   396,   397,   398,     0,
       0,   399,   400,     0,   401,   402,   403,   404,   405,     0,
       0,   406,   407,   408,   409,     0,   410,   411,     0,     0,
     412,   413,   414,     0,     0,   415,   416,     0,   417,   418,
     419,   420,     0,     0,     0,     0,     0,   421,   422,     0,
       0,     0,   423,   424,   425,   426,  2252,   427,   428,     0,
     429,   430,     0,   431,   432,     0,     0,   433,     0,     0,
     434,     0,   435,     0,   436,   437,     0,     0,     0,     0,
       0,     0,   438,     0,     0,   439,     0,     0,     0,   440,
     441,   442,   443,     0,     0,     0,     0,   444,   445,     0,
     446,   447,     0,   138,   448,   139,   140,   141,   142,   143,
       0,     0,     0,     0,     0,   144,     0,     0,   145,     0,
     146,   147,   148,   149,   150,   151,   152,     0,   153,     0,
       0,  2441,   154,     0,     0,     0,   155,     0,     0,   156,
     157,   158,     0,   159,     0,   160,   161,     0,     0,   162,
       0,     0,   163,     0,   164,   165,     0,   166,     0,   167,
     168,   169,   170,   171,     0,   172,   173,     0,   174,   175,
     176,   177,   178,   179,   180,     0,   181,   182,     0,   183,
     184,     0,   185,     0,     0,   186,     0,     0,   187,     0,
       0,     0,     0,     0,     0,   188,   189,   190,     0,     0,
     191,     0,     0,     0,     0,   192,   193,     0,     0,     0,
    2583,   194,     0,   195,     0,     0,     0,   196,     0,   197,
     198,   199,   200,     0,     0,     0,   201,     0,     0,   202,
     203,   204,     0,     0,     0,   205,     0,   206,   207,     0,
     208,   209,   210,  2083,     0,   211,     0,   212,   213,   214,
     215,   216,     0,     0,   217,   218,   219,     0,     0,   220,
     221,     0,   222,   223,   224,     0,     0,   225,     0,     0,
       0,   226,   227,     0,   228,     0,   229,     0,   230,   231,
     232,   233,     0,   234,     0,     0,     0,   235,   236,     0,
     237,     0,     0,   238,   239,     0,     0,     0,   240,   241,
     242,   243,     0,     0,   244,   245,     0,     0,   246,     0,
     247,     0,     0,     0,   248,   249,     0,     0,     0,   250,
       0,   251,   252,     0,   253,   254,     0,     0,     0,   255,
       0,     0,   256,   257,     0,     0,   258,     0,     0,   259,
     260,   566,     0,     0,     0,     0,   261,   262,     0,   263,
       0,   264,     0,   265,   266,     0,     0,     0,     0,     0,
       0,     0,   267,   268,   269,   270,   271,   272,   273,   274,
     275,   276,   277,   278,   279,     0,   280,   281,     0,   282,
     283,   284,   285,     0,   286,   287,   288,     0,     0,     0,
     289,   290,   291,   292,   293,     0,     0,   294,   295,     0,
     296,     0,   297,     0,   298,   299,   300,   301,   302,   303,
     304,   305,     0,     0,   306,   307,     0,     0,   308,   309,
     310,   311,     0,     0,     0,   312,   313,     0,     0,     0,
       0,   314,   315,   316,     0,   317,   318,   319,     0,   320,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   321,
     322,   323,     0,   324,   325,   326,   327,   328,   329,   330,
     331,   332,   333,   334,   335,     0,     0,   336,   337,   338,
       0,   339,     0,   340,   341,   342,   343,     0,   344,   345,
     346,     0,     0,   347,     0,     0,     0,   348,   349,   350,
     351,   352,     0,     0,   353,   354,   355,     0,   356,   357,
       0,   358,   359,   360,     0,     0,   361,     0,   362,   363,
     364,     0,   365,   366,     0,     0,     0,   367,   368,   369,
     370,   371,   372,   373,   374,   375,     0,   376,   377,     0,
       0,     0,   378,   379,   380,   381,     0,     0,  2084,   382,
       0,     0,     0,   383,   384,   385,   386,     0,   387,   388,
     389,   390,   391,     0,     0,     0,     0,     0,     0,   392,
     393,     0,   394,     0,     0,   395,     0,     0,   396,   397,
     398,     0,     0,   399,   400,     0,   401,   402,   403,   404,
     405,     0,     0,   406,   407,   408,   409,     0,   410,   411,
       0,     0,   412,   413,   414,     0,   135,   415,   416,     0,
     417,   418,   419,   420,     0,     0,     0,     0,     0,   421,
     422,     0,     0,     0,   423,   424,   425,   426,     0,   427,
     428,     0,   429,   430,     0,   431,   432,     0,     0,   433,
       0,     0,   434,     0,   435,     0,   436,   437,     0,     0,
       0,     0,     0,     0,   438,     0,     0,   439,     0,     0,
       0,   440,   441,   442,   443,     0,     0,     0,     0,   444,
     445,     0,   446,   447,     0,   138,   448,   139,   140,   141,
     142,   143,     0,     0,     0,     0,     0,   144,     0,     0,
     145,     0,   146,   147,   148,   149,   150,   151,   152,     0,
     153,     0,     0,  2591,   154,     0,     0,     0,   155,     0,
       0,   156,   157,   158,     0,   159,     0,   160,   161,     0,
       0,   162,     0,     0,   163,     0,   164,   165,     0,   166,
       0,   167,   168,   169,   170,   171,     0,   172,   173,     0,
     174,   175,   176,   177,   178,   179,   180,     0,   181,   182,
       0,   183,   184,     0,   185,     0,     0,   186,     0,     0,
     187,     0,     0,     0,     0,     0,     0,   188,   189,   190,
       0,     0,   191,     0,     0,     0,     0,   192,   193,     0,
       0,     0,  2592,   194,     0,   195,     0,     0,     0,   196,
       0,   197,   198,   199,   200,     0,     0,     0,   201,     0,
       0,   202,   203,   204,     0,     0,     0,   205,     0,   206,
     207,     0,   208,   209,   210,     0,     0,   211,     0,   212,
     213,   214,   215,   216,     0,     0,   217,   218,   219,     0,
       0,   220,   221,     0,   222,   223,   224,     0,     0,   225,
       0,     0,     0,   226,   227,     0,   228,     0,   229,     0,
     230,   231,   232,   233,     0,   234,     0,     0,     0,   235,
     236,     0,   237,     0,     0,   238,   239,     0,     0,     0,
     240,   241,   242,   243,     0,     0,   244,   245,     0,     0,
     246,     0,   247,     0,     0,     0,   248,   249,     0,     0,
       0,   250,     0,   251,   252,     0,   253,   254,     0,     0,
       0,   255,     0,     0,   256,   257,     0,     0,   258,     0,
       0,   259,   260,   566,     0,     0,     0,     0,   261,   262,
       0,   263,     0,   264,     0,   265,   266,     0,     0,     0,
       0,     0,     0,     0,   267,   268,   269,   270,   271,   272,
     273,   274,   275,   276,   277,   278,   279,     0,   280,   281,
       0,   282,   283,   284,   285,     0,   286,   287,   288,     0,
       0,     0,   289,   290,   291,   292,   293,     0,     0,   294,
     295,     0,   296,     0,   297,     0,   298,   299,   300,   301,
     302,   303,   304,   305,     0,     0,   306,   307,     0,     0,
     308,   309,   310,   311,     0,     0,     0,   312,   313,     0,
       0,     0,     0,   314,   315,   316,     0,   317,   318,   319,
       0,   320,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   321,   322,   323,     0,   324,   325,   326,   327,   328,
     329,   330,   331,   332,   333,   334,   335,     0,     0,   336,
     337,   338,     0,   339,     0,   340,   341,   342,   343,     0,
     344,   345,   346,     0,     0,   347,     0,     0,     0,   348,
     349,   350,   351,   352,     0,     0,   353,   354,   355,     0,
     356,   357,     0,   358,   359,   360,     0,     0,   361,     0,
     362,   363,   364,     0,   365,   366,     0,     0,     0,   367,
     368,   369,   370,   371,   372,   373,   374,   375,     0,   376,
     377,     0,     0,     0,   378,   379,   380,   381,     0,     0,
       0,   382,     0,     0,     0,   383,   384,   385,   386,     0,
     387,   388,   389,   390,   391,     0,     0,     0,     0,     0,
       0,   392,   393,     0,   394,     0,     0,   395,     0,     0,
     396,   397,   398,     0,     0,   399,   400,     0,   401,   402,
     403,   404,   405,     0,     0,   406,   407,   408,   409,     0,
     410,   411,     0,     0,   412,   413,   414,     0,   135,   415,
     416,     0,   417,   418,   419,   420,     0,     0,     0,     0,
       0,   421,   422,     0,     0,     0,   423,   424,   425,   426,
       0,   427,   428,     0,   429,   430,     0,   431,   432,     0,
       0,   433,     0,     0,   434,     0,   435,     0,   436,   437,
       0,     0,     0,     0,     0,     0,   438,     0,     0,   439,
       0,     0,     0,   440,   441,   442,   443,     0,     0,     0,
       0,   444,   445,     0,   446,   447,     0,   138,   448,   139,
     140,   141,   142,   143,     0,     0,     0,     0,     0,   144,
       0,     0,   145,     0,   146,   147,   148,   149,   150,   151,
     152,     0,   153,     0,     0,  2441,   154,     0,     0,     0,
     155,     0,     0,   156,   157,   158,     0,   159,     0,   160,
     161,     0,     0,   162,     0,     0,   163,     0,   164,   165,
       0,   166,     0,   167,   168,   169,   170,   171,     0,   172,
     173,     0,   174,   175,   176,   177,   178,   179,   180,     0,
     181,   182,     0,   183,   184,     0,   185,     0,     0,   186,
       0,     0,   187,     0,     0,     0,     0,     0,     0,   188,
     189,   190,     0,     0,   191,     0,     0,     0,     0,   192,
     193,     0,     0,     0,  2583,   194,     0,   195,     0,     0,
       0,   196,     0,   197,   198,   199,   200,     0,     0,     0,
     201,     0,     0,   202,   203,   204,     0,     0,     0,   205,
       0,   206,   207,     0,   208,   209,   210,     0,     0,   211,
       0,   212,   213,   214,   215,   216,     0,     0,   217,   218,
     219,     0,     0,   220,   221,     0,   222,   223,   224,     0,
       0,   225,     0,     0,     0,   226,   227,     0,   228,     0,
     229,     0,   230,   231,   232,   233,     0,   234,     0,     0,
       0,   235,   236,     0,   237,     0,     0,   238,   239,     0,
       0,     0,   240,   241,   242,   243,     0,     0,   244,   245,
       0,     0,   246,     0,   247,     0,     0,     0,   248,   249,
       0,     0,     0,   250,     0,   251,   252,     0,   253,   254,
       0,     0,     0,   255,     0,     0,   256,   257,     0,     0,
     258,     0,     0,   259,   260,   566,     0,     0,     0,     0,
     261,   262,     0,   263,     0,   264,     0,   265,   266,     0,
       0,     0,     0,     0,     0,     0,   267,   268,   269,   270,
     271,   272,   273,   274,   275,   276,   277,   278,   279,     0,
     280,   281,     0,   282,   283,   284,   285,     0,   286,   287,
     288,     0,     0,     0,   289,   290,   291,   292,   293,     0,
       0,   294,   295,     0,   296,     0,   297,     0,   298,   299,
     300,   301,   302,   303,   304,   305,     0,     0,   306,   307,
       0,     0,   308,   309,   310,   311,     0,     0,     0,   312,
     313,     0,     0,     0,     0,   314,   315,   316,     0,   317,
     318,   319,     0,   320,     0,     0,     0,     0,     0,     0,
       0,     0,     0,   321,   322,   323,     0,   324,   325,   326,
     327,   328,   329,   330,   331,   332,   333,   334,   335,     0,
       0,   336,   337,   338,     0,   339,     0,   340,   341,   342,
     343,     0,   344,   345,   346,     0,     0,   347,     0,     0,
       0,   348,   349,   350,   351,   352,     0,     0,   353,   354,
     355,     0,   356,   357,     0,   358,   359,   360,     0,     0,
     361,     0,   362,   363,   364,     0,   365,   366,     0,     0,
       0,   367,   368,   369,   370,   371,   372,   373,   374,   375,
       0,   376,   377,     0,     0,     0,   378,   379,   380,   381,
       0,     0,     0,   382,     0,     0,     0,   383,   384,   385,
     386,     0,   387,   388,   389,   390,   391,     0,     0,     0,
       0,     0,     0,   392,   393,     0,   394,     0,     0,   395,
       0,     0,   396,   397,   398,     0,     0,   399,   400,     0,
     401,   402,   403,   404,   405,     0,     0,   406,   407,   408,
     409,     0,   410,   411,     0,     0,   412,   413,   414,     0,
     135,   415,   416,     0,   417,   418,   419,   420,     0,     0,
       0,     0,     0,   421,   422,     0,     0,     0,   423,   424,
     425,   426,     0,   427,   428,     0,   429,   430,     0,   431,
     432,     0,     0,   433,     0,     0,   434,     0,   435,     0,
     436,   437,     0,     0,     0,     0,     0,     0,   438,     0,
       0,   439,     0,     0,     0,   440,   441,   442,   443,     0,
       0,     0,     0,   444,   445,     0,   446,   447,     0,   138,
     448,   139,   140,   141,   142,   143,     0,     0,     0,     0,
       0,   144,     0,     0,   145,     0,   146,   147,   148,   149,
     150,   151,   152,     0,   153,     0,     0,     0,   154,     0,
       0,     0,   155,     0,     0,   156,   157,   158,     0,   159,
       0,   160,   161,     0,     0,   162,     0,     0,   163,     0,
     164,   165,     0,   166,     0,   167,   168,   169,   170,   171,
       0,   172,   173,     0,   174,   175,   176,   177,   178,   179,
     180,     0,   181,   182,     0,   183,   184,     0,   185,     0,
       0,   186,     0,     0,   187,     0,   918,     0,     0,     0,
       0,   188,   189,   190,     0,     0,   191,     0,     0,     0,
       0,   192,   193,     0,     0,     0,     0,   194,     0,   195,
       0,     0,     0,   196,     0,   197,   198,   199,   200,     0,
       0,     0,   201,     0,     0,   202,   203,   204,     0,     0,
       0,   205,     0,   206,   207,     0,   208,   209,   210,     0,
       0,   211,     0,   212,   213,   214,   215,   216,     0,     0,
     217,   218,   219,     0,     0,   220,   221,     0,   222,   223,
     224,     0,     0,   225,     0,     0,     0,   226,   227,     0,
     228,     0,   229,     0,   230,   231,   232,   233,     0,   234,
       0,     0,     0,   235,   236,     0,   237,     0,     0,   238,
     239,     0,     0,     0,   240,   241,   242,   243,     0,     0,
     244,   245,     0,     0,   246,     0,   247,     0,     0,     0,
     248,   249,     0,     0,     0,   250,     0,   251,   252,     0,
     253,   254,     0,     0,     0,   255,     0,     0,   256,   257,
       0,     0,   258,     0,     0,   259,   260,   566,     0,     0,
       0,     0,   261,   262,     0,   263,     0,   264,     0,   265,
     266,     0,     0,     0,     0,     0,     0,     0,   267,   268,
     269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
     279,     0,   280,   281,     0,   282,   283,   284,   285,     0,
     286,   287,   288,     0,     0,     0,   289,   290,   291,   292,
     293,     0,     0,   294,   295,     0,   296,     0,   297,     0,
     298,   299,   300,   301,   302,   303,   304,   305,     0,     0,
     306,   307,     0,     0,   308,   309,   310,   311,     0,     0,
       0,   312,   313,     0,     0,     0,     0,   314,   315,   316,
       0,   317,   318,   319,     0,   320,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   321,   322,   323,     0,   324,
     325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
     335,     0,     0,   336,   337,   338,     0,   339,     0,   340,
     341,   342,   343,     0,   344,   345,   346,     0,     0,   347,
       0,     0,     0,   348,   349,   350,   351,   352,     0,     0,
     353,   354,   355,     0,   356,   357,     0,   358,   359,   360,
       0,     0,   361,     0,   362,   363,   364,     0,   365,   366,
       0,     0,     0,   367,   368,   369,   370,   371,   372,   373,
     374,   375,     0,   376,   377,     0,     0,     0,   378,   379,
     380,   381,     0,     0,     0,   382,     0,     0,     0,   383,
     384,   385,   386,     0,   387,   388,   389,   390,   391,     0,
       0,     0,     0,     0,     0,   392,   393,     0,   394,     0,
       0,   395,     0,     0,   396,   397,   398,     0,     0,   399,
     400,     0,   401,   402,   403,   404,   405,     0,     0,   406,
     407,   408,   409,     0,   410,   411,     0,     0,   412,   413,
     414,     0,   135,   415,   416,     0,   417,   418,   419,   420,
       0,     0,     0,     0,     0,   421,   422,     0,     0,     0,
     423,   424,   425,   426,     0,   427,   428,     0,   429,   430,
       0,   431,   432,     0,     0,   433,     0,     0,   434,     0,
     435,     0,   436,   437,     0,     0,     0,     0,     0,     0,
     438,     0,     0,   439,     0,     0,     0,   440,   441,   442,
     443,     0,     0,     0,     0,   444,   445,     0,   446,   447,
       0,   138,   448,   139,   140,   141,   142,   143,  1269,     0,
       0,     0,     0,   144,     0,     0,   145,     0,   146,   147,
     148,   149,   150,   151,   152,     0,   153,     0,     0,     0,
     154,     0,     0,     0,   155,     0,     0,   156,   157,   158,
       0,   159,     0,   160,   161,     0,     0,   162,     0,     0,
     163,     0,   164,   165,     0,   166,     0,   167,   168,   169,
     170,   171,     0,   172,   173,     0,   174,   175,   176,   177,
     178,   179,   180,     0,   181,   182,     0,   183,   184,     0,
     185,     0,     0,   186,     0,     0,   187,     0,     0,     0,
       0,     0,     0,   188,   189,   190,     0,     0,   191,     0,
       0,     0,     0,   192,   193,     0,     0,     0,     0,   194,
       0,   195,     0,     0,     0,   196,     0,   197,   198,   199,
     200,     0,     0,     0,   201,     0,     0,   202,   203,   204,
       0,     0,     0,   205,     0,   206,   207,     0,   208,   209,
     210,     0,     0,   211,     0,   212,   213,   214,   215,   216,
       0,     0,   217,   218,   219,     0,     0,   220,   221,     0,
     222,   223,   224,     0,     0,   225,     0,     0,     0,   226,
     227,     0,   228,     0,   229,     0,   230,   231,   232,   233,
       0,   234,     0,     0,     0,   235,   236,     0,   237,     0,
       0,   238,   239,     0,     0,     0,   240,   241,   242,   243,
       0,     0,   244,   245,     0,     0,   246,     0,   247,     0,
       0,     0,   248,   249,     0,     0,     0,   250,     0,   251,
     252,     0,   253,   254,     0,     0,     0,   255,     0,     0,
     256,   257,     0,     0,   258,     0,     0,   259,   260,   566,
       0,     0,     0,     0,   261,   262,     0,   263,     0,   264,
       0,   265,   266,     0,     0,     0,     0,     0,     0,     0,
     267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
     277,   278,   279,     0,   280,   281,     0,   282,   283,   284,
     285,     0,   286,   287,   288,     0,     0,     0,   289,   290,
     291,   292,   293,     0,     0,   294,   295,     0,   296,     0,
     297,     0,   298,   299,   300,   301,   302,   303,   304,   305,
       0,     0,   306,   307,     0,     0,   308,   309,   310,   311,
       0,     0,     0,   312,   313,     0,     0,     0,     0,   314,
     315,   316,     0,   317,   318,   319,     0,   320,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   321,   322,   323,
       0,   324,   325,   326,   327,   328,   329,   330,   331,   332,
     333,   334,   335,     0,     0,   336,   337,   338,     0,   339,
       0,   340,   341,   342,   343,     0,   344,   345,   346,     0,
       0,   347,     0,     0,     0,   348,   349,   350,   351,   352,
       0,     0,   353,   354,   355,     0,   356,   357,     0,   358,
     359,   360,     0,     0,   361,     0,   362,   363,   364,     0,
     365,   366,     0,     0,     0,   367,   368,   369,   370,   371,
     372,   373,   374,   375,     0,   376,   377,     0,     0,     0,
     378,   379,   380,   381,     0,     0,     0,   382,     0,     0,
       0,   383,   384,   385,   386,     0,   387,   388,   389,   390,
     391,     0,     0,     0,     0,     0,     0,   392,   393,     0,
     394,     0,     0,   395,     0,     0,   396,   397,   398,     0,
       0,   399,   400,     0,   401,   402,   403,   404,   405,     0,
       0,   406,   407,   408,   409,     0,   410,   411,     0,     0,
     412,   413,   414,     0,   135,   415,   416,     0,   417,   418,
     419,   420,     0,     0,     0,     0,     0,   421,   422,     0,
       0,     0,   423,   424,   425,   426,     0,   427,   428,     0,
     429,   430,     0,   431,   432,     0,     0,   433,     0,     0,
     434,     0,   435,     0,   436,   437,     0,     0,     0,     0,
       0,     0,   438,     0,     0,   439,     0,     0,     0,   440,
     441,   442,   443,     0,     0,     0,     0,   444,   445,     0,
     446,   447,     0,   138,   448,   139,   140,   141,   142,   143,
       0,     0,     0,     0,     0,   144,     0,     0,   145,     0,
     146,   147,   148,   149,   150,   151,   152,     0,   153,     0,
       0,     0,   154,   896,     0,     0,   155,     0,     0,   156,
     157,   158,     0,   159,     0,   160,   161,     0,     0,   162,
       0,     0,   163,     0,   164,   165,     0,   166,     0,   167,
     168,   169,   170,   171,     0,   172,   173,     0,   174,   175,
     176,   177,   178,   179,   180,     0,   181,   182,     0,   183,
     184,     0,   185,     0,     0,   186,     0,     0,   187,     0,
       0,     0,     0,     0,     0,   188,   189,   190,     0,     0,
     191,     0,     0,     0,     0,   192,   193,     0,     0,     0,
       0,   194,     0,   195,     0,     0,     0,   196,     0,   197,
     198,   199,   200,     0,     0,     0,   201,     0,     0,   202,
     203,   204,     0,     0,     0,   205,     0,   206,   207,     0,
     208,   209,   210,     0,     0,   211,     0,   212,   213,   214,
     215,   216,     0,     0,   217,   218,   219,     0,     0,   220,
     221,     0,   222,   223,   224,     0,     0,   225,     0,     0,
       0,   226,   227,     0,   228,     0,   229,     0,   230,   231,
     232,   233,     0,   234,     0,     0,     0,   235,   236,     0,
     237,   897,     0,   238,   239,     0,     0,     0,   240,   241,
     242,   243,     0,     0,   244,   245,     0,     0,   246,     0,
     247,     0,     0,     0,   248,   249,     0,     0,     0,   250,
       0,   251,   252,     0,   253,   254,     0,     0,     0,   255,
       0,     0,   256,   257,     0,     0,   258,     0,     0,   259,
     260,     0,     0,     0,     0,     0,   261,   262,     0,   263,
       0,   264,     0,   265,   266,     0,     0,     0,     0,     0,
       0,     0,   267,   268,   269,   270,   271,   272,   273,   274,
     275,   276,   277,   278,   279,     0,   280,   281,     0,   282,
     283,   284,   285,     0,   286,   287,   288,     0,     0,     0,
     289,   290,   291,   292,   293,     0,     0,   294,   295,     0,
     296,     0,   297,     0,   298,   299,   300,   301,   302,   303,
     304,   305,     0,     0,   306,   307,     0,     0,   308,   309,
     310,   311,     0,     0,     0,   312,   313,     0,     0,     0,
       0,   314,   315,   316,     0,   317,   318,   319,     0,   320,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   321,
     322,   323,     0,   324,   325,   326,   327,   328,   329,   330,
     331,   332,   333,   334,   335,     0,     0,   336,   337,   338,
       0,   339,     0,   340,   341,   342,   343,     0,   344,   345,
     346,     0,     0,   347,     0,     0,     0,   348,   349,   350,
     351,   352,     0,     0,   353,   354,   355,     0,   356,   357,
       0,   358,   359,   360,     0,     0,   361,     0,   362,   363,
     364,     0,   365,   366,     0,     0,     0,   367,   368,   369,
     370,   371,   372,   373,   374,   375,     0,   376,   377,     0,
       0,     0,   378,   379,   380,   381,     0,     0,     0,   382,
       0,     0,     0,   383,   384,   385,   386,     0,   387,   388,
     389,   390,   391,     0,     0,     0,     0,     0,     0,   392,
     393,     0,   394,     0,     0,   395,     0,     0,   396,   397,
     398,     0,     0,   399,   400,     0,   401,   402,   403,   404,
     405,     0,     0,   406,   407,   408,   409,     0,   410,   411,
       0,     0,   412,   413,   414,     0,   898,   415,   416,     0,
     417,   418,   419,   420,     0,     0,     0,     0,     0,   421,
     422,     0,     0,     0,   423,   424,   425,   426,     0,   427,
     428,     0,   429,   430,     0,   431,   432,     0,     0,   433,
       0,     0,   434,     0,   435,     0,   436,   437,     0,     0,
       0,     0,     0,     0,   438,     0,     0,   439,     0,     0,
       0,   440,   441,   442,   443,     0,     0,     0,     0,   444,
     445,     0,   446,   447,     0,   138,   448,   139,   140,   141,
     142,   143,     0,     0,     0,     0,     0,   144,     0,     0,
     145,     0,   146,   147,   148,   149,   150,   151,   152,     0,
     153,     0,     0,  2441,   154,     0,     0,     0,   155,     0,
       0,   156,   157,   158,     0,   159,     0,   160,   161,     0,
       0,   162,     0,     0,   163,     0,   164,   165,     0,   166,
       0,   167,   168,   169,   170,   171,     0,   172,   173,     0,
     174,   175,   176,   177,   178,   179,   180,     0,   181,   182,
       0,   183,   184,     0,   185,     0,     0,   186,     0,     0,
     187,     0,     0,     0,     0,     0,     0,   188,   189,   190,
       0,     0,   191,     0,     0,     0,     0,   192,   193,     0,
       0,     0,     0,   194,     0,   195,     0,     0,     0,   196,
       0,   197,   198,   199,   200,     0,     0,     0,   201,     0,
       0,   202,   203,   204,     0,     0,     0,   205,     0,   206,
     207,     0,   208,   209,   210,     0,     0,   211,     0,   212,
     213,   214,   215,   216,     0,     0,   217,   218,   219,     0,
       0,   220,   221,     0,   222,   223,   224,     0,     0,   225,
       0,     0,     0,   226,   227,     0,   228,     0,   229,     0,
     230,   231,   232,   233,     0,   234,     0,     0,     0,   235,
     236,     0,   237,     0,     0,   238,   239,     0,     0,     0,
     240,   241,   242,   243,     0,     0,   244,   245,     0,     0,
     246,     0,   247,     0,     0,     0,   248,   249,     0,     0,
       0,   250,     0,   251,   252,     0,   253,   254,     0,     0,
       0,   255,     0,     0,   256,   257,     0,     0,   258,     0,
       0,   259,   260,   566,     0,     0,     0,     0,   261,   262,
       0,   263,     0,   264,     0,   265,   266,     0,     0,     0,
       0,     0,     0,     0,   267,   268,   269,   270,   271,   272,
     273,   274,   275,   276,   277,   278,   279,     0,   280,   281,
       0,   282,   283,   284,   285,     0,   286,   287,   288,     0,
       0,     0,   289,   290,   291,   292,   293,     0,     0,   294,
     295,     0,   296,     0,   297,     0,   298,   299,   300,   301,
     302,   303,   304,   305,     0,     0,   306,   307,     0,     0,
     308,   309,   310,   311,     0,     0,     0,   312,   313,     0,
       0,     0,     0,   314,   315,   316,     0,   317,   318,   319,
       0,   320,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   321,   322,   323,     0,   324,   325,   326,   327,   328,
     329,   330,   331,   332,   333,   334,   335,     0,     0,   336,
     337,   338,     0,   339,     0,   340,   341,   342,   343,     0,
     344,   345,   346,     0,     0,   347,     0,     0,     0,   348,
     349,   350,   351,   352,     0,     0,   353,   354,   355,     0,
     356,   357,     0,   358,   359,   360,     0,     0,   361,     0,
     362,   363,   364,     0,   365,   366,     0,     0,     0,   367,
     368,   369,   370,   371,   372,   373,   374,   375,     0,   376,
     377,     0,     0,     0,   378,   379,   380,   381,     0,     0,
       0,   382,     0,     0,     0,   383,   384,   385,   386,     0,
     387,   388,   389,   390,   391,     0,     0,     0,     0,     0,
       0,   392,   393,     0,   394,     0,     0,   395,     0,     0,
     396,   397,   398,     0,     0,   399,   400,     0,   401,   402,
     403,   404,   405,     0,     0,   406,   407,   408,   409,     0,
     410,   411,     0,     0,   412,   413,   414,     0,   135,   415,
     416,     0,   417,   418,   419,   420,     0,     0,     0,     0,
       0,   421,   422,     0,     0,     0,   423,   424,   425,   426,
       0,   427,   428,     0,   429,   430,     0,   431,   432,     0,
       0,   433,     0,     0,   434,     0,   435,     0,   436,   437,
       0,     0,     0,     0,     0,     0,   438,     0,     0,   439,
       0,     0,     0,   440,   441,   442,   443,     0,     0,     0,
       0,   444,   445,     0,   446,   447,     0,   138,   448,   139,
     140,   141,   142,   143,     0,     0,     0,     0,     0,   144,
       0,     0,   145,     0,   146,   147,   148,   149,   150,   151,
     152,     0,   153,     0,     0,     0,   154,     0,     0,     0,
     155,     0,     0,   156,   157,   158,     0,   159,     0,   160,
     161,     0,     0,   162,     0,     0,   163,     0,   164,   165,
       0,   166,     0,   167,   168,   169,   170,   171,     0,   172,
     173,     0,   174,   175,   176,   177,   178,   179,   180,     0,
     181,   182,     0,   183,   184,     0,   185,     0,     0,   186,
       0,     0,   187,     0,     0,     0,     0,     0,     0,   188,
     189,   190,     0,     0,   191,     0,     0,     0,     0,   192,
     193,     0,     0,     0,  2630,   194,     0,   195,     0,     0,
       0,   196,     0,   197,   198,   199,   200,     0,     0,     0,
     201,     0,     0,   202,   203,   204,     0,     0,     0,   205,
       0,   206,   207,     0,   208,   209,   210,     0,     0,   211,
       0,   212,   213,   214,   215,   216,     0,     0,   217,   218,
     219,     0,     0,   220,   221,     0,   222,   223,   224,     0,
       0,   225,     0,     0,     0,   226,   227,     0,   228,     0,
     229,     0,   230,   231,   232,   233,     0,   234,     0,     0,
       0,   235,   236,     0,   237,     0,     0,   238,   239,     0,
       0,     0,   240,   241,   242,   243,     0,     0,   244,   245,
       0,     0,   246,     0,   247,     0,     0,     0,   248,   249,
       0,     0,     0,   250,     0,   251,   252,     0,   253,   254,
       0,     0,     0,   255,     0,     0,   256,   257,     0,     0,
     258,     0,     0,   259,   260,   566,     0,     0,     0,     0,
     261,   262,     0,   263,     0,   264,     0,   265,   266,     0,
       0,     0,     0,     0,     0,     0,   267,   268,   269,   270,
     271,   272,   273,   274,   275,   276,   277,   278,   279,     0,
     280,   281,     0,   282,   283,   284,   285,     0,   286,   287,
     288,     0,     0,     0,   289,   290,   291,   292,   293,     0,
       0,   294,   295,     0,   296,     0,   297,     0,   298,   299,
     300,   301,   302,   303,   304,   305,     0,     0,   306,   307,
       0,     0,   308,   309,   310,   311,     0,     0,     0,   312,
     313,     0,     0,     0,     0,   314,   315,   316,     0,   317,
     318,   319,     0,   320,     0,     0,     0,     0,     0,     0,
       0,     0,     0,   321,   322,   323,     0,   324,   325,   326,
     327,   328,   329,   330,   331,   332,   333,   334,   335,     0,
       0,   336,   337,   338,     0,   339,     0,   340,   341,   342,
     343,     0,   344,   345,   346,     0,     0,   347,     0,     0,
       0,   348,   349,   350,   351,   352,     0,     0,   353,   354,
     355,     0,   356,   357,     0,   358,   359,   360,     0,     0,
     361,     0,   362,   363,   364,     0,   365,   366,     0,     0,
       0,   367,   368,   369,   370,   371,   372,   373,   374,   375,
       0,   376,   377,     0,     0,     0,   378,   379,   380,   381,
       0,     0,     0,   382,     0,     0,     0,   383,   384,   385,
     386,     0,   387,   388,   389,   390,   391,     0,     0,     0,
       0,     0,     0,   392,   393,     0,   394,     0,     0,   395,
       0,     0,   396,   397,   398,     0,     0,   399,   400,     0,
     401,   402,   403,   404,   405,     0,     0,   406,   407,   408,
     409,     0,   410,   411,     0,     0,   412,   413,   414,     0,
     135,   415,   416,     0,   417,   418,   419,   420,     0,     0,
       0,     0,     0,   421,   422,     0,     0,     0,   423,   424,
     425,   426,     0,   427,   428,     0,   429,   430,     0,   431,
     432,     0,     0,   433,     0,     0,   434,     0,   435,     0,
     436,   437,     0,     0,     0,     0,     0,     0,   438,     0,
       0,   439,     0,     0,     0,   440,   441,   442,   443,     0,
       0,     0,     0,   444,   445,     0,   446,   447,     0,   138,
     448,   139,   140,   141,   142,   143,     0,     0,     0,     0,
       0,   144,     0,     0,   145,     0,   146,   147,   148,   149,
     150,   151,   152,     0,   153,     0,     0,     0,   154,     0,
       0,     0,   155,     0,     0,   156,   157,   158,     0,   159,
       0,   160,   161,     0,     0,   162,     0,     0,   163,     0,
     164,   165,     0,   166,     0,   167,   168,   169,   170,   171,
       0,   172,   173,     0,   174,   175,   176,   177,   178,   179,
     180,     0,   181,   182,     0,   183,   184,     0,   185,     0,
       0,   186,     0,     0,   187,     0,     0,     0,     0,     0,
       0,   188,   189,   190,     0,     0,   191,     0,     0,     0,
       0,   192,   193,     0,     0,     0,     0,   194,     0,   195,
       0,     0,     0,   196,     0,   197,   198,   199,   200,     0,
       0,     0,   201,     0,     0,   202,   203,   204,     0,     0,
       0,   205,     0,   206,   207,     0,   208,   209,   210,     0,
       0,   211,     0,   212,   213,   214,   215,   216,     0,     0,
     217,   218,   219,     0,     0,   220,   221,     0,   222,   223,
     224,     0,     0,   225,     0,     0,     0,   226,   227,     0,
     228,     0,   229,     0,   230,   231,   232,   233,     0,   234,
       0,     0,     0,   235,   236,     0,   237,     0,     0,   238,
     239,     0,     0,     0,   240,   241,   242,   243,     0,     0,
     244,   245,     0,     0,   246,     0,   247,     0,     0,     0,
     248,   249,     0,     0,     0,   250,     0,   251,   252,     0,
     253,   254,     0,     0,     0,   255,     0,     0,   256,   257,
       0,     0,   258,     0,     0,   259,   260,   566,     0,     0,
       0,     0,   261,   262,     0,   263,     0,   264,     0,   265,
     266,     0,     0,     0,     0,     0,     0,     0,   267,   268,
     269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
     279,     0,   280,   281,     0,   282,   283,   284,   285,     0,
     286,   287,   288,     0,     0,     0,   289,   290,   291,   292,
     293,     0,     0,   294,   295,     0,   296,     0,   297,     0,
     298,   299,   300,   301,   302,   303,   304,   305,     0,     0,
     306,   307,     0,     0,   308,   309,   310,   311,     0,     0,
       0,   312,   313,     0,     0,     0,     0,   314,   315,   316,
       0,   317,   318,   319,     0,   320,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   321,   322,   323,     0,   324,
     325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
     335,     0,     0,   336,   337,   338,     0,   339,     0,   340,
     341,   342,   343,     0,   344,   345,   346,     0,     0,   347,
       0,     0,     0,   348,   349,   350,   351,   352,     0,     0,
     353,   354,   355,     0,   356,   357,     0,   358,   359,   360,
       0,     0,   361,     0,   362,   363,   364,     0,   365,   366,
       0,     0,     0,   367,   368,   369,   370,   371,   372,   373,
     374,   375,     0,   376,   377,     0,     0,     0,   378,   379,
     380,   381,     0,     0,     0,   382,     0,     0,     0,   383,
     384,   385,   386,     0,   387,   388,   389,   390,   391,     0,
       0,     0,     0,     0,     0,   392,   393,     0,   394,     0,
       0,   395,     0,     0,   396,   397,   398,     0,     0,   399,
     400,     0,   401,   402,   403,   404,   405,     0,     0,   406,
     407,   408,   409,     0,   410,   411,     0,     0,   412,   413,
     414,     0,   135,   415,   416,     0,   417,   418,   419,   420,
       0,     0,     0,     0,     0,   421,   422,     0,     0,     0,
     423,   424,   425,   426,     0,   427,   428,     0,   429,   430,
       0,   431,   432,     0,     0,   433,     0,     0,   434,     0,
     435,     0,   436,   437,     0,     0,     0,     0,     0,     0,
     438,     0,     0,   439,     0,     0,     0,   440,   441,   442,
     443,     0,     0,     0,     0,   444,   445,     0,   446,   447,
       0,   138,   448,   139,   140,   141,   142,   143,     0,     0,
       0,     0,     0,   144,  2573,     0,   145,     0,   146,   147,
     148,   149,   150,   151,   152,     0,   153,     0,     0,     0,
     154,     0,     0,     0,   155,     0,     0,   156,   157,   158,
       0,   159,     0,   160,   161,     0,     0,   162,     0,     0,
     163,     0,   164,   165,     0,   166,     0,   167,   168,   169,
     170,   171,     0,   172,   173,     0,   174,   175,   176,   177,
     178,   179,   180,     0,   181,   182,     0,   183,   184,     0,
     185,     0,     0,   186,     0,     0,   187,     0,     0,     0,
       0,     0,     0,   188,   189,   190,     0,     0,   191,     0,
       0,     0,     0,   192,   193,     0,     0,     0,     0,   194,
       0,   195,     0,     0,     0,   196,     0,   197,   198,   199,
     200,     0,     0,     0,   201,     0,     0,   202,   203,   204,
       0,     0,     0,   205,     0,   206,   207,     0,   208,   209,
     210,     0,     0,   211,     0,   212,   213,   214,   215,   216,
       0,     0,   217,   218,   219,     0,     0,   220,   221,     0,
     222,   223,   224,     0,     0,   225,     0,     0,     0,   226,
     227,     0,   228,     0,   229,     0,   230,   231,   232,   233,
       0,   234,     0,     0,     0,   235,   236,     0,   237,     0,
       0,   238,   239,     0,     0,     0,   240,   241,   242,   243,
       0,     0,   244,   245,     0,     0,   246,     0,   247,     0,
       0,     0,   248,   249,     0,     0,     0,   250,     0,   251,
     252,     0,   253,   254,     0,     0,     0,   255,     0,     0,
     256,   257,     0,     0,   258,     0,     0,   259,   260,     0,
       0,     0,     0,     0,   261,   262,     0,   263,     0,   264,
       0,   265,   266,     0,     0,     0,     0,     0,     0,     0,
     267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
     277,   278,   279,     0,   280,   281,     0,   282,   283,   284,
     285,     0,   286,   287,   288,     0,     0,     0,   289,   290,
     291,   292,   293,     0,     0,   294,   295,     0,   296,     0,
     297,     0,   298,   299,   300,   301,   302,   303,   304,   305,
       0,     0,   306,   307,     0,     0,   308,   309,   310,   311,
       0,     0,     0,   312,   313,     0,     0,     0,     0,   314,
     315,   316,     0,   317,   318,   319,     0,   320,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   321,   322,   323,
       0,   324,   325,   326,   327,   328,   329,   330,   331,   332,
     333,   334,   335,     0,     0,   336,   337,   338,     0,   339,
       0,   340,   341,   342,   343,     0,   344,   345,   346,     0,
       0,   347,     0,     0,     0,   348,   349,   350,   351,   352,
       0,     0,   353,   354,   355,     0,   356,   357,     0,   358,
     359,   360,     0,     0,   361,     0,   362,   363,   364,     0,
     365,   366,     0,     0,     0,   367,   368,   369,   370,   371,
     372,   373,   374,   375,     0,   376,   377,     0,     0,     0,
     378,   379,   380,   381,     0,     0,     0,   382,     0,     0,
       0,   383,   384,   385,   386,     0,   387,   388,   389,   390,
     391,     0,     0,     0,     0,     0,     0,   392,   393,     0,
     394,     0,     0,   395,     0,     0,   396,   397,   398,     0,
       0,   399,   400,     0,   401,   402,   403,   404,   405,     0,
       0,   406,   407,   408,   409,     0,   410,   411,     0,     0,
     412,   413,   414,     0,   135,   415,   416,     0,   417,   418,
     419,   420,     0,     0,     0,     0,     0,   421,   422,     0,
       0,     0,   423,   424,   425,   426,     0,   427,   428,     0,
     429,   430,     0,   431,   432,     0,     0,   433,     0,     0,
     434,     0,   435,     0,   436,   437,     0,     0,     0,     0,
       0,     0,   438,     0,     0,   439,     0,     0,     0,   440,
     441,   442,   443,     0,     0,     0,     0,   444,   445,     0,
     446,   447,     0,   138,   448,   139,   140,   141,   142,   143,
       0,     0,     0,     0,     0,   144,     0,     0,   145,     0,
     146,   147,   148,   149,   150,   151,   152,     0,   153,     0,
       0,     0,   154,     0,     0,     0,   155,     0,     0,   156,
     157,   158,     0,   159,     0,   160,   161,     0,     0,   162,
       0,     0,   163,     0,   164,   165,     0,   166,     0,   167,
     168,   169,   170,   171,     0,   172,   173,     0,   174,   175,
     176,   177,   178,   179,   180,     0,   181,   182,     0,   183,
     184,  3981,   185,     0,     0,   186,     0,     0,   187,     0,
       0,     0,     0,     0,     0,   188,   189,   190,     0,     0,
     191,     0,     0,     0,     0,   192,   193,     0,     0,     0,
       0,   194,     0,   195,     0,     0,     0,   196,     0,   197,
     198,   199,   200,     0,     0,     0,   201,     0,     0,   202,
     203,   204,     0,     0,     0,   205,     0,   206,   207,     0,
     208,   209,   210,     0,     0,   211,     0,   212,   213,   214,
     215,   216,     0,  3982,   217,   218,   219,     0,     0,   220,
     221,     0,   222,   223,   224,     0,     0,   225,     0,     0,
       0,   226,   227,     0,   228,     0,   229,     0,   230,   231,
     232,   233,     0,   234,     0,     0,     0,   235,   236,     0,
     237,     0,     0,   238,   239,     0,     0,     0,   240,   241,
     242,   243,     0,     0,   244,   245,     0,     0,   246,     0,
     247,     0,     0,     0,   248,   249,     0,     0,     0,   250,
       0,   251,   252,     0,   253,   254,     0,     0,     0,   255,
       0,     0,   256,   257,     0,     0,   258,     0,     0,   259,
     260,     0,     0,     0,     0,     0,   261,   262,     0,   263,
       0,   264,     0,   265,   266,     0,     0,     0,     0,     0,
       0,     0,   267,   268,   269,   270,   271,   272,   273,   274,
     275,   276,   277,   278,   279,     0,   280,   281,     0,   282,
     283,   284,   285,     0,   286,   287,   288,     0,     0,     0,
     289,   290,   291,   292,   293,     0,     0,   294,   295,     0,
     296,     0,   297,     0,   298,   299,   300,   301,   302,   303,
     304,   305,     0,     0,   306,   307,     0,     0,   308,   309,
     310,   311,     0,     0,     0,   312,   313,     0,     0,     0,
       0,   314,   315,   316,     0,   317,   318,   319,     0,   320,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   321,
     322,   323,     0,   324,   325,   326,   327,   328,   329,   330,
     331,   332,   333,   334,   335,     0,     0,   336,   337,   338,
       0,   339,     0,   340,   341,   342,   343,     0,   344,   345,
     346,     0,     0,   347,     0,     0,     0,   348,   349,   350,
     351,   352,     0,     0,   353,   354,   355,     0,   356,   357,
       0,   358,   359,   360,     0,     0,   361,     0,   362,   363,
     364,     0,   365,   366,     0,     0,     0,   367,   368,   369,
     370,   371,   372,   373,   374,   375,     0,   376,   377,     0,
       0,     0,   378,   379,   380,   381,     0,     0,     0,   382,
       0,     0,     0,   383,   384,   385,   386,     0,   387,   388,
     389,   390,   391,     0,     0,     0,     0,     0,     0,   392,
     393,     0,   394,     0,     0,   395,     0,     0,   396,   397,
     398,     0,     0,   399,   400,     0,   401,   402,   403,   404,
     405,     0,     0,   406,   407,   408,   409,     0,   410,   411,
       0,     0,   412,   413,   414,     0,     0,   415,   416,     0,
     417,   418,   419,   420,     0,     0,     0,     0,     0,   421,
     422,     0,     0,     0,   423,   424,   425,   426,     0,   427,
     428,     0,   429,   430,     0,   431,   432,     0,     0,   433,
       0,     0,   434,     0,   435,     0,   436,   437,     0,     0,
       0,     0,     0,     0,   438,     0,     0,   439,     0,     0,
       0,   440,   441,   442,   443,     0,     0,     0,     0,   444,
     445,     0,   446,   447,     0,   138,   448,   139,   140,   141,
     142,   143,     0,     0,     0,     0,     0,   144,     0,     0,
     145,     0,   146,   147,   148,   149,   150,   151,   152,     0,
     153,     0,     0,     0,   154,     0,     0,     0,   155,     0,
       0,   156,   157,   158,     0,   159,     0,   160,   161,     0,
       0,   162,     0,     0,   163,     0,   164,   165,     0,   166,
       0,   167,   168,   169,   170,   171,     0,   172,   173,     0,
     174,   175,   176,   177,   178,   179,   180,     0,   181,   182,
       0,   183,   184,     0,   185,     0,     0,   186,     0,     0,
     187,     0,     0,     0,     0,     0,     0,   188,   189,   190,
       0,     0,   191,     0,     0,     0,     0,   192,   193,     0,
       0,     0,     0,   194,     0,   195,     0,     0,     0,   196,
       0,   197,   198,   199,   200,     0,     0,     0,   201,     0,
       0,   202,   203,   204,     0,     0,     0,   205,     0,   206,
     207,     0,   208,   209,   210,     0,     0,   211,     0,   212,
     213,   214,   215,   216,     0,     0,   217,   218,   219,     0,
       0,   220,   221,     0,   222,   223,   224,     0,     0,   225,
       0,     0,     0,   226,   227,   994,   228,     0,   229,     0,
     230,   231,   232,   233,     0,   234,     0,     0,     0,   235,
     236,     0,   237,     0,     0,   238,   239,     0,     0,     0,
     240,   241,   242,   243,     0,     0,   244,   245,     0,     0,
     246,     0,   247,     0,     0,     0,   248,   249,     0,     0,
       0,   250,     0,   251,   252,     0,   253,   254,     0,     0,
       0,   255,     0,     0,   256,   257,     0,     0,   258,     0,
       0,   259,   260,     0,     0,     0,     0,     0,   261,   262,
       0,   263,     0,   264,     0,   265,   266,     0,     0,     0,
       0,     0,     0,     0,   267,   268,   269,   270,   271,   272,
     273,   274,   275,   276,   277,   278,   279,     0,   280,   281,
       0,   282,   283,   284,   285,     0,   286,   287,   288,     0,
       0,     0,   289,   290,   291,   292,   293,     0,     0,   294,
     295,     0,   296,     0,   297,     0,   298,   299,   300,   301,
     302,   303,   304,   305,     0,     0,   306,   307,     0,     0,
     308,   309,   310,   311,     0,     0,     0,   312,   313,     0,
       0,     0,     0,   314,   315,   316,     0,   317,   318,   319,
       0,   320,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   321,   322,   323,     0,   324,   325,   326,   327,   328,
     329,   330,   331,   332,   333,   334,   335,     0,     0,   336,
     337,   338,     0,   339,     0,   340,   341,   342,   343,     0,
     344,   345,   346,     0,     0,   347,     0,     0,     0,   348,
     349,   350,   351,   352,     0,     0,   353,   354,   355,     0,
     356,   357,     0,   358,   359,   360,     0,     0,   361,     0,
     362,   363,   364,     0,   365,   366,     0,     0,     0,   367,
     368,   369,   370,   371,   372,   373,   374,   375,     0,   376,
     377,     0,     0,     0,   378,   379,   380,   381,     0,     0,
       0,   382,     0,     0,     0,   383,   384,   385,   386,     0,
     387,   388,   389,   390,   391,     0,     0,     0,     0,     0,
       0,   392,   393,     0,   394,     0,     0,   395,     0,     0,
     396,   397,   398,     0,     0,   399,   400,     0,   401,   402,
     403,   404,   405,     0,     0,   406,   407,   408,   409,     0,
     410,   411,     0,     0,   412,   413,   414,     0,     0,   415,
     416,     0,   417,   418,   419,   420,     0,     0,     0,     0,
       0,   421,   422,     0,     0,     0,   423,   424,   425,   426,
       0,   427,   428,     0,   429,   430,     0,   431,   432,     0,
       0,   433,     0,     0,   434,     0,   435,     0,   436,   437,
       0,     0,     0,     0,     0,     0,   438,     0,     0,   439,
       0,     0,     0,   440,   441,   442,   443,     0,     0,     0,
       0,   444,   445,     0,   446,   447,     0,   138,   448,   139,
     140,   141,   142,   143,     0,     0,     0,     0,     0,   144,
       0,     0,   145,     0,   146,   147,   148,   149,   150,   151,
     152,     0,   153,     0,     0,     0,   154,     0,     0,     0,
     155,     0,     0,   156,   157,   158,     0,   159,     0,   160,
     161,     0,     0,   162,     0,     0,   163,     0,   164,   165,
       0,   166,     0,   167,   168,   169,   170,   171,     0,   172,
     173,     0,   174,   175,   176,   177,   178,   179,   180,     0,
     181,   182,     0,   183,   184,     0,   185,     0,     0,   186,
       0,     0,   187,     0,     0,     0,     0,     0,     0,   188,
     189,   190,     0,     0,   191,     0,     0,     0,     0,   192,
     193,     0,     0,     0,  1371,   194,     0,   195,     0,     0,
       0,   196,     0,   197,   198,   199,   200,     0,     0,     0,
     201,     0,     0,   202,   203,   204,     0,     0,     0,   205,
       0,   206,   207,     0,   208,   209,   210,     0,     0,   211,
       0,   212,   213,   214,   215,   216,     0,     0,   217,   218,
     219,     0,     0,   220,   221,     0,   222,   223,   224,     0,
       0,   225,     0,     0,     0,   226,   227,     0,   228,     0,
     229,     0,   230,   231,   232,   233,     0,   234,     0,     0,
       0,   235,   236,     0,   237,     0,     0,   238,   239,     0,
       0,     0,   240,   241,   242,   243,     0,     0,   244,   245,
       0,     0,   246,     0,   247,     0,     0,     0,   248,   249,
       0,     0,     0,   250,     0,   251,   252,     0,   253,   254,
       0,     0,     0,   255,     0,     0,   256,   257,     0,     0,
     258,     0,     0,   259,   260,     0,     0,     0,     0,     0,
     261,   262,     0,   263,     0,   264,     0,   265,   266,     0,
       0,     0,     0,     0,     0,     0,   267,   268,   269,   270,
     271,   272,   273,   274,   275,   276,   277,   278,   279,     0,
     280,   281,     0,   282,   283,   284,   285,     0,   286,   287,
     288,     0,     0,     0,   289,   290,   291,   292,   293,     0,
       0,   294,   295,     0,   296,     0,   297,     0,   298,   299,
     300,   301,   302,   303,   304,   305,     0,     0,   306,   307,
       0,     0,   308,   309,   310,   311,     0,     0,     0,   312,
     313,     0,     0,     0,     0,   314,   315,   316,     0,   317,
     318,   319,     0,   320,     0,     0,     0,     0,     0,     0,
       0,     0,     0,   321,   322,   323,     0,   324,   325,   326,
     327,   328,   329,   330,   331,   332,   333,   334,   335,     0,
       0,   336,   337,   338,     0,   339,     0,   340,   341,   342,
     343,     0,   344,   345,   346,     0,     0,   347,     0,     0,
       0,   348,   349,   350,   351,   352,     0,     0,   353,   354,
     355,     0,   356,   357,     0,   358,   359,   360,     0,     0,
     361,     0,   362,   363,   364,     0,   365,   366,     0,     0,
       0,   367,   368,   369,   370,   371,   372,   373,   374,   375,
       0,   376,   377,     0,     0,     0,   378,   379,   380,   381,
       0,     0,     0,   382,     0,     0,     0,   383,   384,   385,
     386,     0,   387,   388,   389,   390,   391,     0,     0,     0,
       0,     0,     0,   392,   393,     0,   394,     0,     0,   395,
       0,     0,   396,   397,   398,     0,     0,   399,   400,     0,
     401,   402,   403,   404,   405,     0,     0,   406,   407,   408,
     409,     0,   410,   411,     0,     0,   412,   413,   414,     0,
       0,   415,   416,     0,   417,   418,   419,   420,     0,     0,
       0,     0,     0,   421,   422,     0,     0,     0,   423,   424,
     425,   426,     0,   427,   428,     0,   429,   430,     0,   431,
     432,     0,     0,   433,     0,     0,   434,     0,   435,     0,
     436,   437,     0,     0,     0,     0,     0,     0,   438,     0,
       0,   439,     0,     0,     0,   440,   441,   442,   443,     0,
       0,     0,     0,   444,   445,     0,   446,   447,     0,   138,
     448,   139,   140,   141,   142,   143,     0,     0,     0,     0,
       0,   144,     0,     0,   145,     0,   146,   147,   148,   149,
     150,   151,   152,     0,   153,     0,     0,     0,   154,     0,
       0,     0,   155,     0,     0,   156,   157,   158,     0,   159,
       0,   160,   161,     0,     0,   162,     0,     0,   163,     0,
     164,   165,     0,   166,     0,   167,   168,   169,   170,   171,
       0,   172,   173,     0,   174,   175,   176,   177,   178,   179,
     180,     0,   181,   182,     0,   183,   184,     0,   185,     0,
       0,   186,     0,     0,   187,     0,     0,     0,     0,     0,
       0,   188,   189,   190,     0,     0,   191,     0,     0,     0,
       0,   192,   193,     0,     0,     0,  2180,   194,     0,   195,
       0,     0,     0,   196,     0,   197,   198,   199,   200,     0,
       0,     0,   201,     0,     0,   202,   203,   204,     0,     0,
       0,   205,     0,   206,   207,     0,   208,   209,   210,     0,
       0,   211,     0,   212,   213,   214,   215,   216,     0,     0,
     217,   218,   219,     0,     0,   220,   221,     0,   222,   223,
     224,     0,     0,   225,     0,     0,     0,   226,   227,     0,
     228,     0,   229,     0,   230,   231,   232,   233,     0,   234,
       0,     0,     0,   235,   236,     0,   237,     0,     0,   238,
     239,     0,     0,     0,   240,   241,   242,   243,     0,     0,
     244,   245,     0,     0,   246,     0,   247,     0,     0,     0,
     248,   249,     0,     0,     0,   250,     0,   251,   252,     0,
     253,   254,     0,     0,     0,   255,     0,     0,   256,   257,
       0,     0,   258,     0,     0,   259,   260,     0,     0,     0,
       0,     0,   261,   262,     0,   263,     0,   264,     0,   265,
     266,     0,     0,     0,     0,     0,     0,     0,   267,   268,
     269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
     279,     0,   280,   281,     0,   282,   283,   284,   285,     0,
     286,   287,   288,     0,     0,     0,   289,   290,   291,   292,
     293,     0,     0,   294,   295,     0,   296,     0,   297,     0,
     298,   299,   300,   301,   302,   303,   304,   305,     0,     0,
     306,   307,     0,     0,   308,   309,   310,   311,     0,     0,
       0,   312,   313,     0,     0,     0,     0,   314,   315,   316,
       0,   317,   318,   319,     0,   320,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   321,   322,   323,     0,   324,
     325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
     335,     0,     0,   336,   337,   338,     0,   339,     0,   340,
     341,   342,   343,     0,   344,   345,   346,     0,     0,   347,
       0,     0,     0,   348,   349,   350,   351,   352,     0,     0,
     353,   354,   355,     0,   356,   357,     0,   358,   359,   360,
       0,     0,   361,     0,   362,   363,   364,     0,   365,   366,
       0,     0,     0,   367,   368,   369,   370,   371,   372,   373,
     374,   375,     0,   376,   377,     0,     0,     0,   378,   379,
     380,   381,     0,     0,     0,   382,     0,     0,     0,   383,
     384,   385,   386,     0,   387,   388,   389,   390,   391,     0,
       0,     0,     0,     0,     0,   392,   393,     0,   394,     0,
       0,   395,     0,     0,   396,   397,   398,     0,     0,   399,
     400,     0,   401,   402,   403,   404,   405,     0,     0,   406,
     407,   408,   409,     0,   410,   411,     0,     0,   412,   413,
     414,     0,     0,   415,   416,     0,   417,   418,   419,   420,
       0,     0,     0,     0,     0,  2181,   422,     0,     0,     0,
     423,   424,   425,   426,     0,   427,   428,     0,   429,   430,
       0,   431,   432,     0,     0,   433,     0,     0,   434,     0,
     435,     0,   436,   437,     0,     0,     0,     0,     0,     0,
     438,     0,     0,   439,     0,     0,     0,   440,   441,   442,
     443,     0,     0,     0,     0,   444,   445,     0,   446,   447,
       0,   138,   448,   139,   140,   141,   142,   143,     0,     0,
       0,     0,     0,   144,     0,     0,   145,     0,   146,   147,
     148,   149,   150,   151,   152,     0,   153,     0,     0,     0,
     154,     0,     0,     0,   155,     0,     0,   156,   157,   158,
       0,   159,     0,   160,   161,     0,     0,   162,     0,     0,
     163,     0,   164,   165,     0,   166,     0,   167,   168,   169,
     170,   171,     0,   172,   173,     0,   174,   175,   176,   177,
     178,   179,   180,     0,   181,   182,     0,   183,   184,     0,
     185,     0,     0,   186,     0,     0,   187,     0,     0,     0,
       0,     0,     0,   188,   189,   190,     0,     0,   191,     0,
       0,     0,     0,   192,   193,     0,     0,     0,     0,   194,
       0,   195,     0,     0,     0,   196,     0,   197,   198,   199,
     200,     0,     0,     0,   201,     0,     0,   202,   203,   204,
       0,     0,     0,   205,     0,   206,   207,     0,   208,   209,
     210,     0,     0,   211,     0,   212,   213,   214,   215,   216,
       0,     0,   217,   218,   219,     0,     0,   220,   221,     0,
     222,   223,   224,     0,     0,   225,     0,     0,     0,   226,
     227,     0,   228,     0,   229,     0,   230,   231,   232,   233,
       0,   234,     0,     0,     0,   235,   236,     0,   237,     0,
       0,   238,   239,     0,     0,     0,   240,   241,   242,   243,
       0,     0,   244,   245,     0,     0,   246,     0,   247,     0,
       0,     0,   248,   249,     0,     0,     0,   250,     0,   251,
     252,     0,   253,   254,     0,     0,     0,   255,     0,     0,
     256,   257,     0,     0,   258,     0,     0,   259,   260,     0,
       0,     0,     0,     0,   261,   262,     0,   263,     0,   264,
       0,   265,   266,     0,     0,     0,     0,     0,     0,     0,
     267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
     277,   278,   279,     0,   280,   281,     0,   282,   283,   284,
     285,     0,   286,   287,   288,     0,     0,     0,   289,   290,
     291,   292,   293,     0,     0,   294,   295,     0,   296,     0,
     297,     0,   298,   299,   300,   301,   302,   303,   304,   305,
       0,     0,   306,   307,     0,     0,   308,   309,   310,   311,
       0,     0,     0,   312,   313,     0,     0,     0,     0,   314,
     315,   316,     0,   317,   318,   319,     0,   320,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   321,   322,   323,
       0,   324,   325,   326,   327,   328,   329,   330,   331,   332,
     333,   334,   335,     0,     0,   336,   337,   338,  2343,   339,
       0,   340,   341,   342,   343,     0,   344,   345,   346,     0,
       0,   347,     0,     0,     0,   348,   349,   350,   351,   352,
       0,     0,   353,   354,   355,     0,   356,   357,     0,   358,
     359,   360,     0,     0,   361,     0,   362,   363,   364,     0,
     365,   366,     0,     0,     0,   367,   368,   369,   370,   371,
     372,   373,   374,   375,     0,   376,   377,     0,     0,     0,
     378,   379,   380,   381,     0,     0,     0,   382,     0,     0,
       0,   383,   384,   385,   386,     0,   387,   388,   389,   390,
     391,     0,     0,     0,     0,     0,     0,   392,   393,     0,
     394,     0,     0,   395,     0,     0,   396,   397,   398,     0,
       0,   399,   400,     0,   401,   402,   403,   404,   405,     0,
       0,   406,   407,   408,   409,     0,   410,   411,     0,     0,
     412,   413,   414,     0,     0,   415,   416,     0,   417,   418,
     419,   420,     0,     0,     0,     0,     0,   421,   422,     0,
       0,     0,   423,   424,   425,   426,     0,   427,   428,     0,
     429,   430,     0,   431,   432,     0,     0,   433,     0,     0,
     434,     0,   435,     0,   436,   437,     0,     0,     0,     0,
       0,     0,   438,     0,     0,   439,     0,     0,     0,   440,
     441,   442,   443,     0,     0,     0,     0,   444,   445,     0,
     446,   447,     0,   138,   448,   139,   140,   141,   142,   143,
    2670,     0,     0,     0,     0,   144,     0,     0,   145,     0,
     146,   147,   148,   149,   150,   151,   152,     0,   153,     0,
       0,     0,   154,     0,     0,     0,   155,     0,     0,   156,
     157,   158,     0,   159,     0,   160,   161,     0,     0,   162,
       0,     0,   163,     0,   164,   165,     0,   166,     0,   167,
     168,   169,   170,   171,     0,   172,   173,     0,   174,   175,
     176,   177,   178,   179,   180,     0,   181,   182,     0,   183,
     184,     0,   185,     0,     0,   186,     0,     0,   187,     0,
       0,     0,     0,     0,     0,   188,   189,   190,     0,     0,
     191,     0,     0,     0,     0,   192,   193,     0,     0,     0,
       0,   194,     0,   195,     0,     0,     0,   196,     0,   197,
     198,   199,   200,     0,     0,     0,   201,     0,     0,   202,
     203,   204,     0,     0,     0,   205,     0,   206,   207,     0,
     208,   209,   210,     0,     0,   211,     0,   212,   213,   214,
     215,   216,     0,     0,   217,   218,   219,     0,     0,   220,
     221,     0,   222,   223,   224,     0,     0,   225,     0,     0,
       0,   226,   227,     0,   228,     0,   229,     0,   230,   231,
     232,   233,     0,   234,     0,     0,     0,   235,   236,     0,
     237,     0,     0,   238,   239,     0,     0,     0,   240,   241,
     242,   243,     0,     0,   244,   245,     0,     0,   246,     0,
     247,     0,     0,     0,   248,   249,     0,     0,     0,   250,
       0,   251,   252,     0,   253,   254,     0,     0,     0,   255,
       0,     0,   256,   257,     0,     0,   258,     0,     0,   259,
     260,     0,     0,     0,     0,     0,   261,   262,     0,   263,
       0,   264,     0,   265,   266,     0,     0,     0,     0,     0,
       0,     0,   267,   268,   269,   270,   271,   272,   273,   274,
     275,   276,   277,   278,   279,     0,   280,   281,     0,   282,
     283,   284,   285,     0,   286,   287,   288,     0,     0,     0,
     289,   290,   291,   292,   293,     0,     0,   294,   295,     0,
     296,     0,   297,     0,   298,   299,   300,   301,   302,   303,
     304,   305,     0,     0,   306,   307,     0,     0,   308,   309,
     310,   311,     0,     0,     0,   312,   313,     0,     0,     0,
       0,   314,   315,   316,     0,   317,   318,   319,     0,   320,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   321,
     322,   323,     0,   324,   325,   326,   327,   328,   329,   330,
     331,   332,   333,   334,   335,     0,     0,   336,   337,   338,
       0,   339,     0,   340,   341,   342,   343,     0,   344,   345,
     346,     0,     0,   347,     0,     0,     0,   348,   349,   350,
     351,   352,     0,     0,   353,   354,   355,     0,   356,   357,
       0,   358,   359,   360,     0,     0,   361,     0,   362,   363,
     364,     0,   365,   366,     0,     0,     0,   367,   368,   369,
     370,   371,   372,   373,   374,   375,     0,   376,   377,     0,
       0,     0,   378,   379,   380,   381,     0,     0,     0,   382,
       0,     0,     0,   383,   384,   385,   386,     0,   387,   388,
     389,   390,   391,     0,     0,     0,     0,     0,     0,   392,
     393,     0,   394,     0,     0,   395,     0,     0,   396,   397,
     398,     0,     0,   399,   400,     0,   401,   402,   403,   404,
     405,     0,     0,   406,   407,   408,   409,     0,   410,   411,
       0,     0,   412,   413,   414,     0,     0,   415,   416,     0,
     417,   418,   419,   420,     0,     0,     0,     0,     0,   421,
     422,     0,     0,     0,   423,   424,   425,   426,     0,   427,
     428,     0,   429,   430,     0,   431,   432,     0,     0,   433,
       0,     0,   434,     0,   435,     0,   436,   437,     0,     0,
       0,     0,     0,     0,   438,     0,     0,   439,     0,     0,
       0,   440,   441,   442,   443,     0,     0,     0,     0,   444,
     445,     0,   446,   447,     0,   138,   448,   139,   140,   141,
     142,   143,     0,     0,     0,     0,     0,   144,     0,     0,
     145,     0,   146,   147,   148,   149,   150,   151,   152,     0,
     153,     0,     0,     0,   154,     0,     0,     0,   155,     0,
       0,   156,   157,   158,     0,   159,     0,   160,   161,     0,
       0,   162,     0,     0,   163,     0,   164,   165,     0,   166,
       0,   167,   168,   169,   170,   171,     0,   172,   173,     0,
     174,   175,   176,   177,   178,   179,   180,     0,   181,   182,
       0,   183,   184,     0,   185,     0,     0,   186,     0,     0,
     187,     0,     0,     0,     0,     0,     0,   188,   189,   190,
       0,     0,   191,     0,     0,     0,     0,   192,   193,     0,
       0,     0,     0,   194,     0,   195,     0,     0,     0,   196,
       0,   197,   198,   199,   200,     0,     0,     0,   201,     0,
       0,   202,   203,   204,     0,     0,     0,   205,     0,   206,
     207,     0,   208,   209,   210,     0,     0,   211,     0,   212,
     213,   214,   215,   216,     0,     0,   217,   218,   219,     0,
       0,   220,   221,     0,   222,   223,   224,     0,     0,   225,
       0,     0,     0,   226,   227,     0,   228,     0,   229,     0,
     230,   231,   232,   233,     0,   234,     0,     0,     0,   235,
     236,     0,   237,     0,     0,   238,   239,     0,     0,     0,
     240,   241,   242,   243,     0,     0,   244,   245,     0,     0,
     246,     0,   247,     0,     0,     0,   248,   249,     0,     0,
       0,   250,     0,   251,   252,     0,   253,   254,     0,     0,
       0,   255,     0,     0,   256,   257,     0,     0,   258,     0,
       0,   259,   260,     0,     0,     0,     0,     0,   261,   262,
       0,   263,     0,   264,     0,   265,   266,     0,     0,     0,
       0,     0,     0,     0,   267,   268,   269,   270,   271,   272,
     273,   274,   275,   276,   277,   278,   279,     0,   280,   281,
       0,   282,   283,   284,   285,     0,   286,   287,   288,     0,
       0,     0,   289,   290,   291,   292,   293,     0,     0,   294,
     295,     0,   296,     0,   297,     0,   298,   299,   300,   301,
     302,   303,   304,   305,     0,     0,   306,   307,     0,     0,
     308,   309,   310,   311,     0,     0,     0,   312,   313,     0,
       0,     0,     0,   314,   315,   316,     0,   317,   318,   319,
       0,   320,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   321,   322,   323,     0,   324,   325,   326,   327,   328,
     329,   330,   331,   332,   333,   334,   335,     0,     0,   336,
     337,   338,     0,   339,     0,   340,   341,   342,   343,     0,
     344,   345,   346,     0,     0,   347,     0,     0,     0,   348,
     349,   350,   351,   352,     0,     0,   353,   354,   355,     0,
     356,   357,     0,   358,   359,   360,     0,     0,   361,     0,
     362,   363,   364,     0,   365,   366,     0,     0,     0,   367,
     368,   369,   370,   371,   372,   373,   374,   375,     0,   376,
     377,     0,     0,     0,   378,   379,   380,   381,     0,     0,
       0,   382,     0,     0,     0,   383,   384,   385,   386,     0,
     387,   388,   389,   390,   391,     0,     0,     0,     0,     0,
       0,   392,   393,     0,   394,     0,     0,   395,     0,     0,
     396,   397,   398,     0,     0,   399,   400,     0,   401,   402,
     403,   404,   405,     0,     0,   406,   407,   408,   409,     0,
     410,   411,     0,     0,   412,   413,   414,     0,   135,   415,
     416,     0,   417,   418,   419,   420,     0,     0,     0,     0,
       0,   421,   422,     0,     0,     0,   423,   424,   425,   426,
       0,   427,   428,     0,   429,   430,     0,   431,   432,     0,
       0,   433,     0,     0,   434,     0,   435,     0,   436,   437,
       0,     0,     0,     0,     0,     0,   438,     0,     0,   439,
       0,     0,     0,   440,   441,   442,   443,     0,     0,     0,
       0,   444,   445,     0,   446,   447,     0,   138,   448,   139,
     140,   141,   142,   143,     0,     0,     0,     0,     0,   144,
       0,     0,   145,     0,   146,   147,   148,   149,   150,   151,
     152,     0,   153,     0,     0,     0,   154,     0,     0,     0,
     155,     0,     0,   156,   157,   158,     0,   159,     0,   160,
     161,     0,     0,   162,     0,     0,   163,     0,   164,   165,
       0,   166,     0,   167,   168,   169,   170,   171,     0,   172,
     173,     0,   174,   175,   176,   177,   178,   179,   180,     0,
     181,   182,     0,   183,   184,     0,   185,     0,     0,   186,
       0,     0,   187,     0,     0,     0,     0,     0,     0,   188,
     189,   190,     0,     0,   191,     0,     0,     0,     0,   192,
     193,     0,     0,     0,  2180,   194,     0,   195,     0,     0,
       0,   196,     0,   197,   198,   199,   200,     0,     0,     0,
     201,     0,     0,   202,   203,   204,     0,     0,     0,   205,
       0,   206,   207,     0,   208,   209,   210,     0,     0,   211,
       0,   212,   213,   214,   215,   216,     0,     0,   217,   218,
     219,     0,     0,   220,   221,     0,   222,   223,   224,     0,
       0,   225,     0,     0,     0,   226,   227,     0,   228,     0,
     229,     0,   230,   231,   232,   233,     0,   234,     0,     0,
       0,   235,   236,     0,   237,     0,     0,   238,   239,     0,
       0,     0,   240,   241,   242,   243,     0,     0,   244,   245,
       0,     0,   246,     0,   247,     0,     0,     0,   248,   249,
       0,     0,     0,   250,     0,   251,   252,     0,   253,   254,
       0,     0,     0,   255,     0,     0,   256,   257,     0,     0,
     258,     0,     0,   259,   260,     0,     0,     0,     0,     0,
     261,   262,     0,   263,     0,   264,     0,   265,   266,     0,
       0,     0,     0,     0,     0,     0,   267,   268,   269,   270,
     271,   272,   273,   274,   275,   276,   277,   278,   279,     0,
     280,   281,     0,   282,   283,   284,   285,     0,   286,   287,
     288,     0,     0,     0,   289,   290,   291,   292,   293,     0,
       0,   294,   295,     0,   296,     0,   297,     0,   298,   299,
     300,   301,   302,   303,   304,   305,     0,     0,   306,   307,
       0,     0,   308,   309,   310,   311,     0,     0,     0,   312,
     313,     0,     0,     0,     0,   314,   315,   316,     0,   317,
     318,   319,     0,   320,     0,     0,     0,     0,     0,     0,
       0,     0,     0,   321,   322,   323,     0,   324,   325,   326,
     327,   328,   329,   330,   331,   332,   333,   334,   335,     0,
       0,   336,   337,   338,     0,   339,     0,   340,   341,   342,
     343,     0,   344,   345,   346,     0,     0,   347,     0,     0,
       0,   348,   349,   350,   351,   352,     0,     0,   353,   354,
     355,     0,   356,   357,     0,   358,   359,   360,     0,     0,
     361,     0,   362,   363,   364,     0,   365,   366,     0,     0,
       0,   367,   368,   369,   370,   371,   372,   373,   374,   375,
       0,   376,   377,     0,     0,     0,   378,   379,   380,   381,
       0,     0,     0,   382,     0,     0,     0,   383,   384,   385,
     386,     0,   387,   388,   389,   390,   391,     0,     0,     0,
       0,     0,     0,   392,   393,     0,   394,     0,     0,   395,
       0,     0,   396,   397,   398,     0,     0,   399,   400,     0,
     401,   402,   403,   404,   405,     0,     0,   406,   407,   408,
     409,     0,   410,   411,     0,     0,   412,   413,   414,     0,
       0,   415,   416,     0,   417,   418,   419,   420,     0,     0,
       0,     0,     0,   421,   422,     0,     0,     0,   423,   424,
     425,   426,     0,   427,   428,     0,   429,   430,     0,   431,
     432,     0,     0,   433,     0,     0,   434,     0,   435,     0,
     436,   437,     0,     0,     0,     0,     0,     0,   438,     0,
       0,   439,     0,     0,     0,   440,   441,   442,   443,     0,
       0,     0,     0,   444,   445,     0,   446,   447,     0,   138,
     448,   139,   140,   141,   142,   143,     0,     0,     0,     0,
       0,   144,     0,     0,   145,     0,   146,   147,   148,   149,
     150,   151,   152,     0,   153,     0,     0,     0,   154,     0,
       0,     0,   155,     0,     0,   156,   157,   158,     0,   159,
       0,   160,   161,     0,     0,   162,     0,     0,   163,     0,
     164,   165,     0,   166,     0,   167,   168,   169,   170,   171,
       0,   172,   173,     0,   174,   175,   176,   177,   178,   179,
     180,     0,   181,   182,     0,   183,   184,     0,   185,     0,
       0,   186,     0,     0,   187,     0,     0,     0,     0,     0,
       0,   188,   189,   190,     0,     0,   191,     0,     0,     0,
       0,   192,   193,     0,     0,     0,     0,   194,     0,   195,
       0,     0,     0,   196,     0,   197,   198,   199,   200,     0,
       0,     0,   201,     0,     0,   202,   203,   204,     0,     0,
       0,   205,     0,   206,   207,     0,   208,   209,   210,     0,
       0,   211,     0,   212,   213,   214,   215,   216,     0,     0,
     217,   218,   219,     0,     0,   220,   221,     0,   222,   223,
     224,     0,     0,   225,     0,     0,     0,   226,   227,     0,
     228,     0,   229,     0,   230,   231,   232,   233,     0,   234,
       0,     0,     0,   235,   236,     0,   237,     0,     0,   238,
     239,     0,     0,     0,   240,   241,   242,   243,     0,     0,
     244,   245,     0,     0,   246,     0,   247,     0,     0,     0,
     248,   249,     0,     0,     0,   250,     0,   251,   252,     0,
     253,   254,     0,     0,     0,   255,     0,     0,   256,   257,
       0,     0,   258,     0,     0,   259,   260,     0,     0,     0,
       0,     0,   261,   262,     0,   263,     0,   264,     0,   265,
     266,     0,     0,     0,     0,     0,     0,     0,   267,   268,
     269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
     279,     0,   280,   281,     0,   282,   283,   284,   285,     0,
     286,   287,   288,     0,     0,     0,   289,   290,   291,   292,
     293,     0,     0,   294,   295,     0,   296,     0,   297,     0,
     298,   299,   300,   301,   302,   303,   304,   305,     0,     0,
     306,   307,     0,     0,   308,   309,   310,   311,     0,     0,
       0,   312,   313,     0,     0,     0,     0,   314,   315,   316,
       0,   317,   318,   319,     0,   320,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   321,   322,   323,     0,   324,
     325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
     335,     0,     0,   336,   337,   338,     0,   339,     0,   340,
     341,   342,   343,     0,   344,   345,   346,     0,     0,   347,
       0,     0,     0,   348,   349,   350,   351,   352,     0,     0,
     353,   354,   355,     0,   356,   357,     0,   358,   359,   360,
       0,     0,   361,     0,   362,   363,   364,     0,   365,   366,
       0,     0,     0,   367,   368,   369,   370,   371,   372,   373,
     374,   375,     0,   376,   377,     0,     0,     0,   378,   379,
     380,   381,     0,     0,     0,   382,     0,     0,     0,   383,
     384,   385,   386,     0,   387,   388,   389,   390,   391,     0,
       0,     0,     0,     0,     0,   392,   393,     0,   394,     0,
       0,   395,     0,     0,   396,   397,   398,     0,     0,   399,
     400,     0,   401,   402,   403,   404,   405,     0,     0,   406,
     407,   408,   409,     0,   410,   411,     0,     0,   412,   413,
     414,     0,     0,   415,   416,     0,   417,   418,   419,   420,
       0,     0,     0,     0,     0,   421,   422,     0,     0,     0,
     423,   424,   425,   426,     0,   427,   428,     0,   429,   430,
       0,   431,   432,     0,     0,   433,     0,     0,   434,     0,
     435,     0,   436,   437,     0,     0,     0,     0,     0,     0,
     438,     0,     0,   439,     0,     0,     0,   440,   441,   442,
     443,     0,     0,     0,     0,   444,   445,     0,   446,   447,
       0,   138,   448,   139,   140,   141,   142,   143,     0,     0,
       0,     0,     0,   144,     0,     0,   145,     0,   146,   147,
     148,   149,   150,   151,   152,     0,   153,     0,     0,     0,
     154,     0,     0,     0,   155,     0,     0,   156,   157,   158,
       0,   159,     0,   160,   161,     0,     0,   162,     0,     0,
     163,     0,   164,   165,     0,   166,     0,   167,   168,   169,
     170,   171,     0,   172,   173,     0,   174,   175,   176,   177,
     178,   179,   180,     0,   181,   182,     0,   183,   184,     0,
     185,     0,     0,   186,     0,     0,   187,     0,     0,     0,
       0,     0,     0,   188,   189,   190,     0,     0,   191,     0,
       0,     0,     0,   192,   193,     0,     0,     0,     0,   194,
       0,   195,     0,     0,     0,   196,     0,   197,   198,   199,
     200,     0,     0,     0,   201,     0,     0,   202,   203,   204,
       0,     0,     0,   205,     0,   206,   207,     0,   208,   209,
     210,     0,     0,   211,     0,   212,   213,   214,   215,   216,
       0,     0,   217,   218,   219,     0,     0,   220,   221,     0,
     222,  1647,   224,     0,     0,   225,     0,     0,     0,   226,
     227,     0,   228,     0,   229,     0,   230,   231,   232,   233,
       0,   234,     0,     0,     0,   235,   236,     0,   237,     0,
       0,   238,   239,     0,     0,     0,   240,   241,   242,   243,
       0,     0,   244,   245,     0,     0,   246,     0,   247,     0,
       0,     0,   248,   249,     0,     0,     0,   250,     0,   251,
     252,     0,   253,   254,     0,     0,     0,   255,     0,     0,
     256,   257,     0,     0,   258,     0,     0,   259,   260,     0,
       0,     0,     0,     0,   261,   262,     0,   263,     0,   264,
       0,   265,   266,     0,     0,     0,     0,     0,     0,     0,
     267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
     277,   278,   279,     0,   280,   281,     0,   282,   283,   284,
     285,     0,   286,   287,   288,     0,     0,     0,   289,   290,
     291,   292,   293,     0,     0,   294,   295,     0,   296,     0,
     297,     0,   298,   299,   300,   301,   302,   303,   304,   305,
       0,     0,   306,   307,     0,     0,   308,  1648,   310,   311,
       0,     0,     0,   312,   313,     0,     0,     0,     0,   314,
     315,   316,     0,   317,   318,   319,     0,   320,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   321,   322,   323,
       0,   324,   325,   326,   327,   328,   329,   330,   331,   332,
     333,   334,   335,     0,     0,   336,   337,   338,     0,   339,
       0,   340,   341,   342,   343,     0,   344,   345,   346,     0,
       0,   347,     0,     0,     0,   348,   349,   350,   351,   352,
       0,     0,   353,   354,   355,     0,   356,   357,     0,   358,
     359,   360,     0,     0,   361,     0,   362,   363,   364,     0,
     365,   366,     0,     0,     0,   367,   368,   369,   370,   371,
     372,   373,   374,   375,     0,   376,   377,     0,     0,     0,
     378,   379,   380,   381,     0,     0,     0,   382,     0,     0,
       0,   383,   384,   385,   386,     0,   387,   388,   389,   390,
     391,     0,     0,     0,     0,     0,     0,   392,   393,     0,
     394,     0,     0,   395,     0,     0,   396,   397,   398,     0,
       0,   399,   400,     0,   401,   402,   403,   404,   405,     0,
       0,   406,   407,   408,   409,     0,   410,   411,     0,     0,
     412,   413,   414,     0,     0,   415,   416,     0,   417,   418,
     419,   420,     0,     0,     0,     0,     0,   421,   422,     0,
       0,     0,   423,   424,   425,   426,     0,   427,   428,     0,
     429,   430,     0,   431,   432,     0,     0,   433,     0,     0,
     434,     0,   435,     0,   436,   437,     0,     0,     0,     0,
       0,     0,   438,     0,     0,   439,     0,     0,     0,   440,
     441,   442,   443,     0,     0,     0,     0,   444,   445,     0,
     446,   447,     0,   138,   448,   139,   140,   141,   142,   143,
       0,     0,     0,     0,     0,   144,     0,     0,     0,     0,
     146,   147,   148,   149,   150,   151,     0,     0,  -295,     0,
       0,     0,   154,     0,     0,     0,   155,     0,     0,   156,
     157,   158,     0,   159,     0,     0,     0,     0,     0,   162,
    3570,     0,   163,     0,   164,     0,     0,     0,     0,   167,
     168,  3571,   170,   171,     0,   172,   173,     0,     0,   175,
       0,   177,   178,   179,   180,     0,   181,   182,     0,     0,
     184,     0,   185,     0,     0,   186,     0,     0,   187,     0,
       0,     0,     0,     0,     0,   188,   189,   190,     0,     0,
     191,     0,     0,     0,     0,   192,     0,     0,     0,     0,
       0,   194,     0,   195,     0,     0,     0,   196,     0,   197,
     198,   199,   200,     0,     0,     0,     0,     0,     0,   202,
     203,   204,     0,  -265,  -265,   205,     0,  -265,   207,     0,
     208,   209,   210,     0,     0,   211,     0,   212,   213,   214,
     215,     0,     0,     0,   217,   218,   219,     0,     0,   220,
     221,  3572,   222,   223,   224,     0,     0,     0,     0,     0,
       0,   226,   227,     0,   228,     0,   229,     0,   230,   231,
     232,   233,     0,   234,     0,     0,     0,     0,   236,     0,
       0,     0,     0,     0,   239,     0,     0,     0,   240,   241,
     242,   243,  3573,     0,   244,   245,     0,     0,   246,     0,
     247,     0,     0,     0,   248,     0,     0,     0,     0,   250,
       0,   251,   252,     0,   253,   254,  3574,     0,     0,   255,
       0,     0,     0,   257,     0,     0,   258,  3575,     0,   259,
     260,     0,     0,     0,     0,     0,   261,   262,     0,   263,
       0,   264,     0,   265,   266,     0,     0,     0,     0,  -250,
       0,     0,   267,   268,   269,   270,   271,   272,   273,   274,
     275,   276,   277,   278,   279,     0,   280,   281,     0,   282,
     283,   284,   285,     0,   286,   287,   288,     0,     0,     0,
     289,   290,   291,   292,   293,     0,     0,   294,   295,     0,
     296,     0,   297,     0,   298,   299,   300,   301,   302,   303,
     304,   305,     0,     0,   306,   307,     0,     0,   308,   309,
     310,   311,     0,     0,     0,     0,   313,     0,     0,     0,
       0,   314,   315,   316,     0,   317,   318,  3576,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     322,   323,     0,     0,   325,   326,   327,     0,   329,   330,
     331,   332,   333,   334,     0,     0,     0,     0,   337,   338,
       0,   339,     0,   340,   341,   342,   343,     0,   344,   345,
     346,     0,     0,   347,     0,     0,     0,   348,   349,   350,
     351,   352,     0,     0,   353,   354,   355,     0,   356,     0,
       0,   358,     0,   360,  -250,     0,   361,     0,     0,   363,
       0,     0,   365,   366,  3577,     0,     0,     0,   368,   369,
     370,   371,   372,   373,     0,   375,     0,   376,     0,     0,
       0,     0,   378,   379,   380,     0,     0,     0,     0,   382,
       0,     0,     0,   383,     0,   385,     0,     0,   387,     0,
       0,   390,   391,     0,     0,     0,     0,     0,     0,   392,
     393,     0,   394,     0,     0,   395,     0,     0,   396,     0,
     398,     0,     0,     0,   400,     0,   401,   402,   403,   404,
     405,     0,     0,   406,   407,   408,   409,     0,   410,   411,
       0,     0,   412,   413,   414,     0,     0,   415,   416,     0,
     417,   418,   419,   420,     0,     0,     0,     0,     0,   421,
     422,     0,     0,     0,     0,   424,   425,   426,     0,   427,
     428,     0,   429,   430,     0,     0,     0,     0,     0,   433,
       0,     0,   434,     0,     0,     0,   436,   437,     0,     0,
       0,     0,     0,     0,   438,     0,     0,   439,     0,     0,
       0,   440,   441,   442,   443,     0,     0,  -250,     0,   444,
       0,     0,   446,     0,     0,   138,   448,   139,   140,   141,
     142,   143,     0,     0,     0,     0,     0,   144,     0,     0,
       0,     0,   146,   147,   148,   149,   150,   151,     0,     0,
    -295,     0,     0,     0,   154,     0,     0,     0,   155,     0,
       0,   156,   157,   158,     0,   159,     0,     0,     0,     0,
       0,   162,  3570,     0,   163,     0,   164,     0,     0,     0,
       0,   167,   168,  3571,   170,   171,     0,   172,   173,     0,
       0,   175,     0,   177,   178,   179,   180,     0,   181,   182,
       0,     0,   184,     0,   185,     0,     0,   186,     0,     0,
     187,     0,     0,     0,     0,     0,     0,   188,   189,   190,
       0,     0,   191,     0,     0,     0,     0,   192,     0,     0,
       0,     0,     0,   194,     0,   195,     0,     0,     0,   196,
       0,   197,   198,   199,   200,     0,     0,     0,     0,     0,
       0,   202,   203,   204,     0,  -286,     0,   205,     0,  -286,
     207,     0,   208,   209,   210,     0,     0,   211,     0,   212,
     213,   214,   215,     0,     0,     0,   217,   218,   219,     0,
       0,   220,   221,  3572,   222,   223,   224,     0,     0,     0,
       0,     0,     0,   226,   227,     0,   228,     0,   229,     0,
     230,   231,   232,   233,     0,   234,     0,     0,     0,     0,
     236,     0,     0,     0,     0,     0,   239,     0,     0,     0,
     240,   241,   242,   243,  3573,     0,   244,   245,     0,     0,
     246,     0,   247,     0,     0,     0,   248,     0,     0,     0,
       0,   250,     0,   251,   252,     0,   253,   254,  3574,     0,
       0,   255,     0,     0,     0,   257,     0,     0,   258,  3575,
       0,   259,   260,     0,     0,     0,     0,     0,   261,   262,
       0,   263,     0,   264,     0,   265,   266,     0,     0,     0,
       0,  -250,     0,     0,   267,   268,   269,   270,   271,   272,
     273,   274,   275,   276,   277,   278,   279,     0,   280,   281,
       0,   282,   283,   284,   285,     0,   286,   287,   288,     0,
       0,     0,   289,   290,   291,   292,   293,     0,     0,   294,
     295,     0,   296,     0,   297,     0,   298,   299,   300,   301,
     302,   303,   304,   305,     0,     0,   306,   307,     0,     0,
     308,   309,   310,   311,     0,     0,     0,     0,   313,     0,
       0,     0,     0,   314,   315,   316,     0,   317,   318,  3576,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,   322,   323,     0,     0,   325,   326,   327,     0,
     329,   330,   331,   332,   333,   334,     0,     0,     0,     0,
     337,   338,     0,   339,     0,   340,   341,   342,   343,     0,
     344,   345,   346,     0,     0,   347,     0,     0,     0,   348,
     349,   350,   351,   352,     0,     0,   353,   354,   355,     0,
     356,     0,     0,   358,     0,   360,  -250,     0,   361,     0,
       0,   363,     0,     0,   365,   366,  3577,     0,     0,     0,
     368,   369,   370,   371,   372,   373,     0,   375,     0,   376,
       0,     0,     0,     0,   378,   379,   380,     0,     0,     0,
       0,   382,     0,     0,     0,   383,     0,   385,     0,     0,
     387,     0,     0,   390,   391,     0,     0,     0,     0,     0,
       0,   392,   393,     0,   394,     0,     0,   395,     0,     0,
     396,     0,   398,     0,     0,     0,   400,     0,   401,   402,
     403,   404,   405,     0,     0,   406,   407,   408,   409,     0,
     410,   411,     0,     0,   412,   413,   414,     0,     0,   415,
     416,     0,   417,   418,   419,   420,     0,     0,     0,     0,
       0,   421,   422,     0,     0,     0,     0,   424,   425,   426,
       0,   427,   428,     0,   429,   430,     0,     0,     0,     0,
       0,   433,     0,     0,   434,     0,     0,     0,   436,   437,
       0,     0,     0,     0,     0,     0,   438,     0,     0,   439,
       0,     0,     0,   440,   441,   442,   443,  -286,     0,  -250,
       0,   444,     0,     0,   446,     0,     0,   138,   448,   139,
     140,   141,   142,   143,     0,     0,     0,     0,     0,   144,
       0,     0,     0,     0,   146,   147,   148,   149,   150,   151,
       0,     0,  -295,     0,     0,     0,   154,     0,     0,     0,
     155,     0,     0,   156,   157,   158,     0,   159,     0,     0,
       0,     0,     0,   162,  3570,     0,   163,     0,   164,     0,
       0,     0,     0,   167,   168,  3571,   170,   171,     0,   172,
     173,     0,     0,   175,     0,   177,   178,   179,   180,     0,
     181,   182,     0,     0,   184,     0,   185,     0,     0,   186,
       0,     0,   187,     0,     0,     0,     0,     0,     0,   188,
     189,   190,     0,     0,   191,     0,     0,     0,     0,   192,
       0,     0,     0,     0,     0,   194,     0,   195,     0,     0,
       0,   196,     0,   197,   198,   199,   200,     0,     0,     0,
       0,     0,     0,   202,   203,   204,     0,  -283,     0,   205,
       0,  -283,   207,     0,   208,   209,   210,     0,     0,   211,
       0,   212,   213,   214,   215,     0,     0,     0,   217,   218,
     219,     0,     0,   220,   221,  3572,   222,   223,   224,     0,
       0,     0,     0,     0,     0,   226,   227,     0,   228,     0,
     229,     0,   230,   231,   232,   233,     0,   234,     0,     0,
       0,     0,   236,     0,     0,     0,     0,     0,   239,     0,
       0,     0,   240,   241,   242,   243,  3573,     0,   244,   245,
       0,     0,   246,     0,   247,     0,     0,     0,   248,     0,
       0,     0,     0,   250,     0,   251,   252,     0,   253,   254,
    3574,     0,     0,   255,     0,     0,     0,   257,     0,     0,
     258,  3575,     0,   259,   260,     0,     0,     0,     0,     0,
     261,   262,     0,   263,     0,   264,     0,   265,   266,     0,
       0,     0,     0,  -250,     0,     0,   267,   268,   269,   270,
     271,   272,   273,   274,   275,   276,   277,   278,   279,     0,
     280,   281,     0,   282,   283,   284,   285,     0,   286,   287,
     288,     0,     0,     0,   289,   290,   291,   292,   293,     0,
       0,   294,   295,     0,   296,     0,   297,     0,   298,   299,
     300,   301,   302,   303,   304,   305,     0,     0,   306,   307,
       0,     0,   308,   309,   310,   311,     0,     0,     0,     0,
     313,     0,     0,     0,     0,   314,   315,   316,     0,   317,
     318,  3576,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   322,   323,     0,     0,   325,   326,
     327,     0,   329,   330,   331,   332,   333,   334,     0,     0,
       0,     0,   337,   338,     0,   339,     0,   340,   341,   342,
     343,     0,   344,   345,   346,     0,     0,   347,     0,     0,
       0,   348,   349,   350,   351,   352,     0,     0,   353,   354,
     355,     0,   356,     0,     0,   358,     0,   360,  -250,     0,
     361,     0,     0,   363,     0,     0,   365,   366,  3577,     0,
       0,     0,   368,   369,   370,   371,   372,   373,     0,   375,
       0,   376,     0,     0,     0,     0,   378,   379,   380,     0,
       0,     0,     0,   382,     0,     0,     0,   383,     0,   385,
       0,     0,   387,     0,     0,   390,   391,     0,     0,     0,
       0,     0,     0,   392,   393,     0,   394,     0,     0,   395,
       0,     0,   396,     0,   398,     0,     0,     0,   400,     0,
     401,   402,   403,   404,   405,     0,     0,   406,   407,   408,
     409,     0,   410,   411,     0,     0,   412,   413,   414,     0,
       0,   415,   416,     0,   417,   418,   419,   420,     0,     0,
       0,     0,     0,   421,   422,     0,     0,     0,     0,   424,
     425,   426,     0,   427,   428,     0,   429,   430,     0,     0,
       0,     0,     0,   433,     0,     0,   434,     0,     0,     0,
     436,   437,     0,     0,     0,     0,     0,     0,   438,     0,
       0,   439,     0,     0,     0,   440,   441,   442,   443,  -283,
       0,  -250,     0,   444,     0,     0,   446,     0,     0,   138,
     448,   139,   140,   141,   142,   143,     0,     0,     0,     0,
       0,   144,     0,     0,     0,     0,   146,   147,   148,   149,
     150,   151,     0,     0,  -295,     0,     0,     0,   154,     0,
       0,     0,   155,     0,     0,   156,   157,   158,     0,   159,
       0,     0,     0,     0,     0,   162,  3570,     0,   163,     0,
     164,     0,     0,     0,     0,   167,   168,  3571,   170,   171,
       0,   172,   173,     0,     0,   175,     0,   177,   178,   179,
     180,     0,   181,   182,     0,     0,   184,     0,   185,     0,
       0,   186,     0,     0,   187,     0,     0,     0,     0,     0,
       0,   188,   189,   190,     0,     0,   191,     0,     0,     0,
       0,   192,     0,     0,     0,     0,     0,   194,     0,   195,
       0,     0,     0,   196,     0,   197,   198,   199,   200,     0,
       0,     0,     0,     0,     0,   202,   203,   204,     0,     0,
       0,   205,     0,  3889,   207,     0,   208,   209,   210,     0,
       0,   211,     0,   212,   213,   214,   215,     0,     0,     0,
     217,   218,   219,     0,     0,   220,   221,  3572,   222,   223,
     224,     0,     0,     0,     0,     0,     0,   226,   227,     0,
     228,     0,   229,     0,   230,   231,   232,   233,     0,   234,
       0,     0,     0,     0,   236,     0,     0,     0,     0,     0,
     239,     0,     0,     0,   240,   241,   242,   243,  3573,     0,
     244,   245,     0,     0,   246,     0,   247,     0,     0,     0,
     248,     0,     0,     0,     0,   250,     0,   251,   252,     0,
     253,   254,  3574,     0,     0,   255,     0,     0,     0,   257,
       0,     0,   258,  3575,     0,   259,   260,     0,     0,     0,
       0,     0,   261,   262,     0,   263,     0,   264,     0,   265,
     266,     0,     0,     0,     0,  -250,     0,     0,   267,   268,
     269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
     279,     0,   280,   281,     0,   282,   283,   284,   285,     0,
     286,   287,   288,     0,     0,     0,   289,   290,   291,   292,
     293,     0,     0,   294,   295,     0,   296,     0,   297,     0,
     298,   299,   300,   301,   302,   303,   304,   305,     0,     0,
     306,   307,     0,     0,   308,   309,   310,   311,     0,     0,
       0,     0,   313,     0,     0,     0,     0,   314,   315,   316,
       0,   317,   318,  3576,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,   322,   323,     0,     0,
     325,   326,   327,     0,   329,   330,   331,   332,   333,   334,
       0,     0,     0,     0,   337,   338,     0,   339,     0,   340,
     341,   342,   343,     0,   344,   345,   346,     0,     0,   347,
       0,     0,     0,   348,   349,   350,   351,   352,     0,     0,
     353,   354,   355,     0,   356,     0,     0,   358,     0,   360,
    -250,     0,   361,     0,     0,   363,     0,     0,   365,   366,
    3577,     0,     0,     0,   368,   369,   370,   371,   372,   373,
       0,   375,     0,   376,     0,     0,     0,     0,   378,   379,
     380,     0,     0,     0,     0,   382,     0,     0,     0,   383,
       0,   385,     0,     0,   387,     0,     0,   390,   391,     0,
       0,     0,     0,     0,     0,   392,   393,     0,   394,     0,
       0,   395,     0,     0,   396,     0,   398,     0,     0,     0,
     400,     0,   401,   402,   403,   404,   405,     0,     0,   406,
     407,   408,   409,     0,   410,   411,     0,     0,   412,   413,
     414,     0,     0,   415,   416,     0,   417,   418,   419,   420,
       0,     0,     0,     0,     0,   421,   422,     0,     0,     0,
       0,   424,   425,   426,     0,   427,   428,     0,   429,   430,
       0,     0,     0,     0,     0,   433,     0,     0,   434,     0,
       0,     0,   436,   437,     0,     0,     0,     0,     0,     0,
     438,     0,     0,   439,     0,     0,     0,   440,   441,   442,
     443,     0,     0,  -250,     0,   444,     0,     0,   446,     0,
       0,   138,   448,   139,   140,   141,   142,   143,     0,     0,
       0,     0,     0,   144,     0,     0,     0,     0,   146,   147,
     148,   149,   150,   151,     0,     0,  -295,     0,     0,     0,
     154,     0,     0,     0,   155,     0,     0,   156,   157,   158,
       0,   159,     0,     0,     0,     0,     0,   162,  3570,     0,
     163,     0,   164,     0,     0,     0,     0,   167,   168,  3571,
     170,   171,     0,   172,   173,     0,     0,   175,     0,   177,
     178,   179,   180,     0,   181,   182,     0,     0,   184,     0,
     185,     0,     0,   186,     0,     0,   187,     0,     0,     0,
       0,     0,     0,   188,   189,   190,     0,     0,   191,     0,
       0,     0,     0,   192,     0,     0,     0,     0,     0,   194,
       0,   195,     0,     0,     0,   196,     0,   197,   198,   199,
     200,     0,     0,     0,     0,     0,     0,   202,   203,   204,
       0,     0,     0,   205,     0,  -288,   207,     0,   208,   209,
     210,     0,     0,   211,     0,   212,   213,   214,   215,     0,
       0,     0,   217,   218,   219,     0,     0,   220,   221,  3572,
     222,   223,   224,     0,     0,     0,     0,     0,     0,   226,
     227,     0,   228,     0,   229,     0,   230,   231,   232,   233,
       0,   234,     0,     0,     0,     0,   236,     0,     0,     0,
       0,     0,   239,     0,     0,     0,   240,   241,   242,   243,
    3573,     0,   244,   245,     0,     0,   246,     0,   247,     0,
       0,     0,   248,     0,     0,     0,     0,   250,     0,   251,
     252,     0,   253,   254,  3574,     0,     0,   255,     0,     0,
       0,   257,     0,     0,   258,  3575,     0,   259,   260,     0,
       0,     0,     0,     0,   261,   262,     0,   263,     0,   264,
       0,   265,   266,     0,     0,     0,     0,  -250,     0,     0,
     267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
     277,   278,   279,     0,   280,   281,     0,   282,   283,   284,
     285,     0,   286,   287,   288,     0,     0,     0,   289,   290,
     291,   292,   293,     0,     0,   294,   295,     0,   296,     0,
     297,     0,   298,   299,   300,   301,   302,   303,   304,   305,
       0,     0,   306,   307,     0,     0,   308,   309,   310,   311,
       0,     0,     0,     0,   313,     0,     0,     0,     0,   314,
     315,   316,     0,   317,   318,  3576,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,   322,   323,
       0,     0,   325,   326,   327,     0,   329,   330,   331,   332,
     333,   334,     0,     0,     0,     0,   337,   338,     0,   339,
       0,   340,   341,   342,   343,     0,   344,   345,   346,     0,
       0,   347,     0,     0,     0,   348,   349,   350,   351,   352,
       0,     0,   353,   354,   355,     0,   356,     0,     0,   358,
       0,   360,  -250,     0,   361,     0,     0,   363,     0,     0,
     365,   366,  3577,     0,     0,     0,   368,   369,   370,   371,
     372,   373,     0,   375,     0,   376,     0,     0,     0,     0,
     378,   379,   380,     0,     0,     0,     0,   382,     0,     0,
       0,   383,     0,   385,     0,     0,   387,     0,     0,   390,
     391,     0,     0,     0,     0,     0,     0,   392,   393,     0,
     394,     0,     0,   395,     0,     0,   396,     0,   398,     0,
       0,     0,   400,     0,   401,   402,   403,   404,   405,     0,
       0,   406,   407,   408,   409,     0,   410,   411,     0,     0,
     412,   413,   414,     0,     0,   415,   416,     0,   417,   418,
     419,   420,     0,     0,     0,     0,     0,   421,   422,     0,
       0,     0,     0,   424,   425,   426,     0,   427,   428,     0,
     429,   430,     0,     0,     0,     0,     0,   433,     0,     0,
     434,     0,     0,     0,   436,   437,     0,     0,     0,     0,
       0,     0,   438,     0,     0,   439,     0,     0,     0,   440,
     441,   442,   443,     0,     0,  -250,     0,   444,     0,     0,
     446,     0,     0,   138,   448,   139,   140,   141,   142,   143,
       0,     0,     0,     0,     0,   144,     0,     0,     0,     0,
     146,   147,   148,   149,   150,   151,     0,     0,  -295,     0,
       0,     0,   154,     0,     0,     0,   155,     0,     0,   156,
     157,   158,     0,   159,     0,     0,     0,     0,     0,   162,
    3570,     0,   163,     0,   164,     0,     0,     0,     0,   167,
     168,  3571,   170,   171,     0,   172,   173,     0,     0,   175,
       0,   177,   178,   179,   180,     0,   181,   182,     0,     0,
     184,     0,   185,     0,     0,   186,     0,     0,   187,     0,
       0,     0,     0,     0,     0,   188,   189,   190,     0,     0,
     191,     0,     0,     0,     0,   192,     0,     0,     0,     0,
       0,   194,     0,   195,     0,     0,     0,   196,     0,   197,
     198,   199,   200,     0,     0,     0,     0,     0,     0,   202,
     203,   204,     0,     0,     0,   205,     0,  3986,   207,     0,
     208,   209,   210,     0,     0,   211,     0,   212,   213,   214,
     215,     0,     0,     0,   217,   218,   219,     0,     0,   220,
     221,  3572,   222,   223,   224,     0,     0,     0,     0,     0,
       0,   226,   227,     0,   228,     0,   229,     0,   230,   231,
     232,   233,     0,   234,     0,     0,     0,     0,   236,     0,
       0,     0,     0,     0,   239,     0,     0,     0,   240,   241,
     242,   243,  3573,     0,   244,   245,     0,     0,   246,     0,
     247,     0,     0,     0,   248,     0,     0,     0,     0,   250,
       0,   251,   252,     0,   253,   254,  3574,     0,     0,   255,
       0,     0,     0,   257,     0,     0,   258,  3575,     0,   259,
     260,     0,     0,     0,     0,     0,   261,   262,     0,   263,
       0,   264,     0,   265,   266,     0,     0,     0,     0,  -250,
       0,     0,   267,   268,   269,   270,   271,   272,   273,   274,
     275,   276,   277,   278,   279,     0,   280,   281,     0,   282,
     283,   284,   285,     0,   286,   287,   288,     0,     0,     0,
     289,   290,   291,   292,   293,     0,     0,   294,   295,     0,
     296,     0,   297,     0,   298,   299,   300,   301,   302,   303,
     304,   305,     0,     0,   306,   307,     0,     0,   308,   309,
     310,   311,     0,     0,     0,     0,   313,     0,     0,     0,
       0,   314,   315,   316,     0,   317,   318,  3576,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     322,   323,     0,     0,   325,   326,   327,     0,   329,   330,
     331,   332,   333,   334,     0,     0,     0,     0,   337,   338,
       0,   339,     0,   340,   341,   342,   343,     0,   344,   345,
     346,     0,     0,   347,     0,     0,     0,   348,   349,   350,
     351,   352,     0,     0,   353,   354,   355,     0,   356,     0,
       0,   358,     0,   360,  -250,     0,   361,     0,     0,   363,
       0,     0,   365,   366,  3577,     0,     0,     0,   368,   369,
     370,   371,   372,   373,     0,   375,     0,   376,     0,     0,
       0,     0,   378,   379,   380,     0,     0,     0,     0,   382,
       0,     0,     0,   383,     0,   385,     0,     0,   387,     0,
       0,   390,   391,     0,     0,     0,     0,     0,     0,   392,
     393,     0,   394,     0,     0,   395,     0,     0,   396,     0,
     398,     0,     0,     0,   400,     0,   401,   402,   403,   404,
     405,     0,     0,   406,   407,   408,   409,     0,   410,   411,
       0,     0,   412,   413,   414,     0,     0,   415,   416,     0,
     417,   418,   419,   420,     0,     0,     0,     0,     0,   421,
     422,     0,     0,     0,     0,   424,   425,   426,     0,   427,
     428,     0,   429,   430,     0,     0,     0,     0,     0,   433,
       0,     0,   434,     0,     0,     0,   436,   437,     0,     0,
       0,     0,     0,     0,   438,     0,     0,   439,     0,     0,
       0,   440,   441,   442,   443,     0,     0,  -250,     0,   444,
       0,     0,   446,     0,     0,   138,   448,   139,   140,   141,
     142,   143,     0,     0,     0,     0,     0,   144,     0,     0,
       0,     0,   146,   147,   148,   149,   150,   151,     0,     0,
    -295,     0,     0,     0,   154,     0,     0,     0,   155,     0,
       0,   156,   157,   158,     0,   159,     0,     0,     0,     0,
       0,   162,  3570,     0,   163,     0,   164,     0,     0,     0,
       0,   167,   168,  3571,   170,   171,     0,   172,   173,     0,
       0,   175,     0,   177,   178,   179,   180,     0,   181,   182,
       0,     0,   184,     0,   185,     0,     0,   186,     0,     0,
     187,     0,     0,     0,     0,     0,     0,   188,   189,   190,
       0,     0,   191,     0,     0,     0,     0,   192,     0,     0,
       0,     0,     0,   194,     0,   195,     0,     0,     0,   196,
       0,   197,   198,   199,   200,     0,     0,     0,     0,     0,
       0,   202,   203,   204,     0,     0,     0,   205,     0,  4028,
     207,     0,   208,   209,   210,     0,     0,   211,     0,   212,
     213,   214,   215,     0,     0,     0,   217,   218,   219,     0,
       0,   220,   221,  3572,   222,   223,   224,     0,     0,     0,
       0,     0,     0,   226,   227,     0,   228,     0,   229,     0,
     230,   231,   232,   233,     0,   234,     0,     0,     0,     0,
     236,     0,     0,     0,     0,     0,   239,     0,     0,     0,
     240,   241,   242,   243,  3573,     0,   244,   245,     0,     0,
     246,     0,   247,     0,     0,     0,   248,     0,     0,     0,
       0,   250,     0,   251,   252,     0,   253,   254,  3574,     0,
       0,   255,     0,     0,     0,   257,     0,     0,   258,  3575,
       0,   259,   260,     0,     0,     0,     0,     0,   261,   262,
       0,   263,     0,   264,     0,   265,   266,     0,     0,     0,
       0,  -250,     0,     0,   267,   268,   269,   270,   271,   272,
     273,   274,   275,   276,   277,   278,   279,     0,   280,   281,
       0,   282,   283,   284,   285,     0,   286,   287,   288,     0,
       0,     0,   289,   290,   291,   292,   293,     0,     0,   294,
     295,     0,   296,     0,   297,     0,   298,   299,   300,   301,
     302,   303,   304,   305,     0,     0,   306,   307,     0,     0,
     308,   309,   310,   311,     0,     0,     0,     0,   313,     0,
       0,     0,     0,   314,   315,   316,     0,   317,   318,  3576,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,   322,   323,     0,     0,   325,   326,   327,     0,
     329,   330,   331,   332,   333,   334,     0,     0,     0,     0,
     337,   338,     0,   339,     0,   340,   341,   342,   343,     0,
     344,   345,   346,     0,     0,   347,     0,     0,     0,   348,
     349,   350,   351,   352,     0,     0,   353,   354,   355,     0,
     356,     0,     0,   358,     0,   360,  -250,     0,   361,     0,
       0,   363,     0,     0,   365,   366,  3577,     0,     0,     0,
     368,   369,   370,   371,   372,   373,     0,   375,     0,   376,
       0,     0,     0,     0,   378,   379,   380,     0,     0,     0,
       0,   382,     0,     0,     0,   383,     0,   385,     0,     0,
     387,     0,     0,   390,   391,     0,     0,     0,     0,     0,
       0,   392,   393,     0,   394,     0,     0,   395,     0,     0,
     396,     0,   398,     0,     0,     0,   400,     0,   401,   402,
     403,   404,   405,     0,     0,   406,   407,   408,   409,     0,
     410,   411,     0,     0,   412,   413,   414,     0,     0,   415,
     416,     0,   417,   418,   419,   420,     0,     0,     0,     0,
       0,   421,   422,     0,     0,     0,     0,   424,   425,   426,
       0,   427,   428,     0,   429,   430,     0,     0,     0,     0,
       0,   433,     0,     0,   434,     0,     0,     0,   436,   437,
       0,     0,     0,     0,     0,     0,   438,     0,     0,   439,
       0,     0,     0,   440,   441,   442,   443,     0,     0,  -250,
       0,   444,     0,     0,   446,     0,     0,   138,   448,   139,
     140,   141,   142,   143,     0,     0,     0,     0,     0,   144,
       0,     0,     0,     0,   146,   147,   148,   149,   150,   151,
       0,     0,  -295,     0,     0,     0,   154,     0,     0,     0,
     155,     0,     0,   156,   157,   158,     0,   159,     0,     0,
       0,     0,     0,   162,  3570,     0,   163,     0,   164,     0,
       0,     0,     0,   167,   168,  3571,   170,   171,     0,   172,
     173,     0,     0,   175,     0,   177,   178,   179,   180,     0,
     181,   182,     0,     0,   184,     0,   185,     0,     0,   186,
       0,     0,   187,     0,     0,     0,     0,     0,     0,   188,
     189,   190,     0,     0,   191,     0,     0,     0,     0,   192,
       0,     0,     0,     0,     0,   194,     0,   195,     0,     0,
       0,   196,     0,   197,   198,   199,   200,     0,     0,     0,
       0,     0,     0,   202,   203,   204,     0,     0,     0,   205,
       0,  -269,   207,     0,   208,   209,   210,     0,     0,   211,
       0,   212,   213,   214,   215,     0,     0,     0,   217,   218,
     219,     0,     0,   220,   221,  3572,   222,   223,   224,     0,
       0,     0,     0,     0,     0,   226,   227,     0,   228,     0,
     229,     0,   230,   231,   232,   233,     0,   234,     0,     0,
       0,     0,   236,     0,     0,     0,     0,     0,   239,     0,
       0,     0,   240,   241,   242,   243,  3573,     0,   244,   245,
       0,     0,   246,     0,   247,     0,     0,     0,   248,     0,
       0,     0,     0,   250,     0,   251,   252,     0,   253,   254,
    3574,     0,     0,   255,     0,     0,     0,   257,     0,     0,
     258,  3575,     0,   259,   260,     0,     0,     0,     0,     0,
     261,   262,     0,   263,     0,   264,     0,   265,   266,     0,
       0,     0,     0,  -250,     0,     0,   267,   268,   269,   270,
     271,   272,   273,   274,   275,   276,   277,   278,   279,     0,
     280,   281,     0,   282,   283,   284,   285,     0,   286,   287,
     288,     0,     0,     0,   289,   290,   291,   292,   293,     0,
       0,   294,   295,     0,   296,     0,   297,     0,   298,   299,
     300,   301,   302,   303,   304,   305,     0,     0,   306,   307,
       0,     0,   308,   309,   310,   311,     0,     0,     0,     0,
     313,     0,     0,     0,     0,   314,   315,   316,     0,   317,
     318,  3576,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   322,   323,     0,     0,   325,   326,
     327,     0,   329,   330,   331,   332,   333,   334,     0,     0,
       0,     0,   337,   338,     0,   339,     0,   340,   341,   342,
     343,     0,   344,   345,   346,     0,     0,   347,     0,     0,
       0,   348,   349,   350,   351,   352,     0,     0,   353,   354,
     355,     0,   356,     0,     0,   358,     0,   360,  -250,     0,
     361,     0,     0,   363,     0,     0,   365,   366,  3577,     0,
       0,     0,   368,   369,   370,   371,   372,   373,     0,   375,
       0,   376,     0,     0,     0,     0,   378,   379,   380,     0,
       0,     0,     0,   382,     0,     0,     0,   383,     0,   385,
       0,     0,   387,     0,     0,   390,   391,     0,     0,     0,
       0,     0,     0,   392,   393,     0,   394,     0,     0,   395,
       0,     0,   396,     0,   398,     0,     0,     0,   400,     0,
     401,   402,   403,   404,   405,     0,     0,   406,   407,   408,
     409,     0,   410,   411,     0,     0,   412,   413,   414,     0,
       0,   415,   416,     0,   417,   418,   419,   420,     0,     0,
       0,     0,     0,   421,   422,     0,     0,     0,     0,   424,
     425,   426,     0,   427,   428,     0,   429,   430,     0,     0,
       0,     0,     0,   433,     0,     0,   434,     0,     0,     0,
     436,   437,     0,     0,     0,     0,     0,     0,   438,     0,
       0,   439,     0,     0,     0,   440,   441,   442,   443,     0,
       0,  -250,     0,   444,     0,     0,   446,     0,     0,   138,
     448,   139,   140,   141,   142,   143,     0,     0,     0,     0,
       0,   144,     0,     0,     0,     0,   146,   147,   148,   149,
     150,   151,     0,     0,  -295,     0,     0,     0,   154,     0,
       0,     0,   155,     0,     0,   156,   157,   158,     0,   159,
       0,     0,     0,     0,     0,   162,  3570,     0,   163,     0,
     164,     0,     0,     0,     0,   167,   168,  3571,   170,   171,
       0,   172,   173,     0,     0,   175,     0,   177,   178,   179,
     180,     0,   181,   182,     0,     0,   184,     0,   185,     0,
       0,   186,     0,     0,   187,     0,     0,     0,     0,     0,
       0,   188,   189,   190,     0,     0,   191,     0,     0,     0,
       0,   192,     0,     0,     0,     0,     0,   194,     0,   195,
       0,     0,     0,   196,     0,   197,   198,   199,   200,     0,
       0,     0,     0,     0,     0,   202,   203,   204,     0,     0,
       0,   205,     0,     0,   207,     0,   208,   209,   210,     0,
       0,   211,     0,   212,   213,   214,   215,     0,     0,     0,
     217,   218,   219,     0,     0,   220,   221,  3572,   222,   223,
     224,     0,     0,     0,     0,     0,     0,   226,   227,     0,
     228,     0,   229,     0,   230,   231,   232,   233,     0,   234,
       0,     0,     0,     0,   236,     0,     0,     0,     0,     0,
     239,     0,     0,     0,   240,   241,   242,   243,  3573,     0,
     244,   245,     0,     0,   246,     0,   247,     0,     0,     0,
     248,     0,     0,     0,     0,   250,     0,   251,   252,     0,
     253,   254,  3574,     0,     0,   255,     0,     0,     0,   257,
       0,     0,   258,  3575,     0,   259,   260,     0,     0,     0,
       0,     0,   261,   262,     0,   263,     0,   264,     0,   265,
     266,     0,     0,     0,     0,  -250,     0,     0,   267,   268,
     269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
     279,     0,   280,   281,     0,   282,   283,   284,   285,     0,
     286,   287,   288,     0,     0,     0,   289,   290,   291,   292,
     293,     0,     0,   294,   295,     0,   296,     0,   297,     0,
     298,   299,   300,   301,   302,   303,   304,   305,     0,     0,
     306,   307,     0,     0,   308,   309,   310,   311,     0,     0,
       0,     0,   313,     0,     0,     0,     0,   314,   315,   316,
       0,   317,   318,  3576,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,   322,   323,     0,     0,
     325,   326,   327,     0,   329,   330,   331,   332,   333,   334,
       0,     0,     0,     0,   337,   338,     0,   339,     0,   340,
     341,   342,   343,     0,   344,   345,   346,     0,     0,   347,
       0,     0,     0,   348,   349,   350,   351,   352,     0,     0,
     353,   354,   355,     0,   356,     0,     0,   358,     0,   360,
    -250,     0,   361,     0,     0,   363,     0,     0,   365,   366,
    3577,     0,     0,     0,   368,   369,   370,   371,   372,   373,
       0,   375,     0,   376,     0,     0,     0,     0,   378,   379,
     380,     0,     0,     0,     0,   382,     0,     0,     0,   383,
       0,   385,     0,     0,   387,     0,     0,   390,   391,     0,
       0,     0,     0,     0,     0,   392,   393,     0,   394,     0,
       0,   395,     0,     0,   396,     0,   398,     0,     0,     0,
     400,     0,   401,   402,   403,   404,   405,     0,     0,   406,
     407,   408,   409,     0,   410,   411,     0,     0,   412,   413,
     414,     0,     0,   415,   416,     0,   417,   418,   419,   420,
       0,     0,     0,     0,     0,   421,   422,     0,     0,     0,
       0,   424,   425,   426,     0,   427,   428,     0,   429,   430,
       0,     0,     0,     0,     0,   433,     0,     0,   434,     0,
       0,     0,   436,   437,     0,     0,     0,     0,     0,     0,
     438,     0,     0,   439,     0,     0,     0,   440,   441,   442,
     443,     0,     0,  -250,     0,   444,     0,     0,   446,     0,
       0,   138,   448,   139,   140,   141,   142,   143,     0,     0,
       0,     0,     0,   144,     0,     0,     0,     0,   146,   147,
     148,   149,   150,   151,     0,     0,  -295,     0,     0,     0,
     154,     0,     0,     0,   155,     0,     0,   156,   157,   158,
       0,   159,     0,     0,     0,     0,     0,   162,  3570,     0,
     163,     0,   164,     0,     0,     0,     0,   167,   168,  3571,
     170,   171,     0,   172,   173,     0,     0,   175,     0,   177,
     178,   179,   180,     0,   181,   182,     0,     0,   184,     0,
     185,     0,     0,   186,     0,     0,   187,     0,     0,     0,
       0,     0,     0,   188,   189,   190,     0,     0,   191,     0,
       0,     0,     0,   192,     0,     0,     0,     0,     0,   194,
       0,   195,     0,     0,     0,   196,     0,   197,   198,   199,
     200,     0,     0,     0,     0,     0,     0,   202,   203,   204,
       0,     0,     0,   205,     0,     0,   207,     0,   208,   209,
     210,     0,     0,   211,     0,   212,   213,   214,   215,     0,
       0,     0,   217,   218,   219,     0,     0,   220,   221,  3572,
     222,   223,   224,     0,     0,     0,     0,     0,     0,   226,
     227,     0,   228,     0,   229,     0,   230,   231,   232,   233,
       0,   234,     0,     0,     0,     0,   236,     0,     0,     0,
       0,     0,   239,     0,     0,     0,   240,   241,   242,   243,
    3573,     0,   244,   245,     0,     0,   246,     0,   247,     0,
       0,     0,   248,     0,     0,     0,     0,   250,     0,   251,
     252,     0,   253,   254,  3574,     0,     0,   255,     0,     0,
       0,   257,     0,     0,   258,  3575,     0,   259,   260,     0,
       0,     0,     0,     0,   261,   262,     0,   263,     0,   264,
       0,   265,   266,     0,     0,     0,     0,  -250,     0,     0,
     267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
     277,   278,   279,     0,   280,   281,     0,   282,   283,   284,
     285,     0,   286,   287,   288,     0,     0,     0,   289,   290,
     291,   292,   293,     0,     0,   294,   295,     0,   296,     0,
     297,     0,   298,   299,   300,   301,   302,   303,   304,   305,
       0,     0,   306,   307,     0,     0,   308,   309,   310,   311,
       0,     0,     0,     0,   313,     0,     0,     0,     0,   314,
     315,   316,     0,   317,   318,  3576,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,   322,   323,
       0,     0,   325,   326,   327,     0,   329,   330,   331,   332,
     333,   334,     0,     0,     0,     0,   337,   338,     0,   339,
       0,   340,   341,   342,   343,     0,   344,   345,   346,     0,
       0,   347,     0,     0,     0,   348,   349,   350,   351,   352,
       0,     0,   353,   354,   355,     0,   356,     0,     0,   358,
       0,   360,  -250,     0,   361,     0,     0,   363,     0,     0,
     365,   366,  3577,     0,     0,     0,   368,   369,   370,   371,
     372,   373,     0,   375,     0,   376,     0,     0,     0,     0,
     378,   379,   380,     0,     0,     0,     0,   382,     0,     0,
       0,   383,     0,   385,     0,     0,   387,     0,     0,   390,
     391,     0,     0,     0,     0,     0,     0,   392,   393,     0,
     394,     0,     0,   395,     0,     0,   396,     0,   398,     0,
       0,     0,   400,     0,   401,   402,   403,   404,   405,     0,
       0,   406,   407,   408,   409,     0,   410,   411,     0,     0,
     412,   413,   414,     0,     0,   415,   416,     0,   417,   418,
     419,   420,     0,     0,     0,     0,     0,   421,   422,     0,
       0,     0,     0,   424,   425,   426,     0,   427,   428,     0,
     429,   430,     0,     0,     0,     0,     0,   433,     0,     0,
    3892,     0,     0,     0,   436,   437,     0,     0,     0,     0,
       0,     0,   438,     0,     0,   439,     0,     0,     0,   440,
     441,   442,   443,     0,     0,  -250,     0,   444,     0,     0,
     446,     0,     0,   138,   448,   139,   140,   141,   142,   143,
       0,     0,     0,     0,     0,   144,     0,     0,     0,     0,
     146,   147,   148,   149,   150,   151,     0,     0,     0,     0,
       0,     0,   154,     0,     0,     0,   155,     0,     0,   156,
     157,   158,     0,   159,     0,     0,     0,     0,     0,   162,
       0,     0,   163,     0,   164,     0,     0,     0,     0,   167,
     168,     0,   170,   171,     0,   172,   173,     0,     0,   175,
       0,   177,   178,   179,   180,     0,   181,   182,     0,     0,
     184,     0,   185,     0,     0,   186,     0,     0,   187,     0,
       0,     0,     0,     0,     0,   188,   189,   190,     0,     0,
     191,     0,     0,     0,     0,   192,     0,     0,     0,     0,
       0,   194,     0,   195,     0,     0,     0,   196,     0,   197,
     198,   199,   200,     0,     0,     0,     0,     0,     0,   202,
     203,   204,     0,     0,     0,   205,     0,     0,   207,     0,
     208,   209,   210,     0,     0,   211,     0,   212,   213,   214,
     215,     0,     0,     0,   217,   218,   219,     0,     0,   220,
     221,     0,   222,   223,   224,     0,     0,     0,     0,     0,
       0,   226,   227,     0,   228,     0,   229,     0,   230,   231,
     232,   233,     0,   234,     0,     0,     0,     0,   236,     0,
       0,     0,     0,     0,   239,     0,     0,     0,   240,   241,
     242,   243,     0,     0,   244,   245,     0,     0,   246,     0,
     247,     0,     0,     0,   248,     0,     0,     0,     0,   250,
       0,   251,   252,     0,   253,   254,     0,     0,     0,   255,
       0,     0,     0,   257,     0,     0,   258,     0,     0,   259,
     260,     0,     0,     0,     0,     0,   261,   262,     0,   263,
       0,   264,     0,   265,   266,     0,     0,     0,     0,     0,
       0,     0,   267,   268,   269,   270,   271,   272,   273,   274,
     275,   276,   277,   278,   279,     0,   280,   281,     0,   282,
     283,   284,   285,     0,   286,   287,   288,     0,     0,     0,
     289,   290,   291,   292,   293,     0,     0,   294,   295,     0,
     296,     0,   297,     0,   298,   299,   300,   301,   302,   303,
     304,   305,     0,     0,   306,   307,     0,     0,   308,   309,
     310,   311,     0,     0,     0,     0,   313,     0,     0,     0,
       0,   314,   315,   316,     0,   317,   318,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     322,   323,     0,     0,   325,   326,   327,     0,   329,   330,
     331,   332,   333,   334,     0,     0,     0,     0,   337,   338,
       0,   339,     0,   340,   341,   342,   343,     0,   344,   345,
     346,     0,     0,   347,     0,     0,     0,   348,   349,   350,
     351,   352,     0,     0,   353,   354,   355,     0,   356,     0,
       0,   358,     0,   360,     0,     0,   361,     0,     0,   363,
       0,     0,   365,   366,     0,     0,     0,     0,   368,   369,
     370,   371,   372,   373,     0,   375,     0,   376,     0,     0,
       0,     0,   378,   379,   380,     0,     0,     0,     0,   382,
       0,     0,     0,   383,     0,   385,     0,     0,   387,     0,
       0,   390,   391,     0,     0,     0,     0,     0,     0,   392,
     393,     0,   394,     0,     0,   395,     0,     0,   396,     0,
     398,     0,     0,     0,   400,     0,   401,   402,   403,   404,
     405,     0,     0,   406,   407,   408,   409,     0,   410,   411,
       0,     0,   412,   413,   414,     0,     0,   415,   416,     0,
     417,   418,   419,   420,     0,     0,     0,     0,     0,   421,
     422,     0,     0,     0,     0,   424,   425,   426,     0,   427,
     428,     0,   429,   430,     0,     0,     0,     0,     0,   433,
       0,     0,   434,     0,     0,     0,   436,   437,     0,     0,
       0,     0,     0,     0,   438,     0,     0,   439,     0,     0,
       0,   440,   441,   442,   443,     0,     0,     0,     0,   444,
       0,     0,   446,     0,     0,     0,   448
};

static const yytype_int16 yycheck[] =
{
       7,   733,   527,   911,   548,   592,   912,   527,   634,   635,
     639,     7,   121,    20,     5,   826,    23,   601,   602,   477,
    1664,   998,   749,  1212,  1063,    32,   946,   562,  1272,  1092,
    1039,   852,  1092,    21,   619,    42,   992,   993,  1564,   876,
    2299,  2506,    30,  1115,  2116,   671,    53,  2159,    36,  2190,
    1122,  2183,  2184,  2185,  1964,   876,  1873,  1156,  2229,  1969,
    1355,  1337,  2607,  1627,   693,   691,  2325,   696,  2558,  1942,
    1801,   916,  1030,  2979,   850,  1363,  2418,   703,   704,   705,
    2217,  2402,  1749,  2404,  1123,  1124,    93,  1820,  1127,  1128,
    1129,  1130,   916,  1132,  1133,  1134,  1135,  1136,  1137,  1138,
    1139,   877,  2174,  2950,  2194,  2195,    23,   606,   115,  1924,
     117,  2738,  2294,   120,   121,   122,  1345,  2956,    16,  1286,
    1818,   117,  1417,   534,   120,    50,   711,   712,   713,  2210,
     137,  1818,    18,  1924,   580,   722,  1303,  2218,   723,  2280,
    1821,    18,   588,   589,  1825,    24,  1313,  1314,   658,    33,
    3012,  3013,  1773,  1774,  3016,  1836,  1887,    16,    20,    56,
    3200,  1892,  2432,  2304,  2305,  1846,  2436,  1898,  1899,  1790,
      58,  1902,   127,  3035,    15,    16,    93,  1663,    96,  3041,
    1690,    15,    16,  1792,    71,  1764,  1807,  1808,  1946,   878,
      18,  1913,   116,    57,    58,    57,    58,    15,    16,    29,
     135,   135,  1823,  1824,  1810,  1826,    15,    16,  1829,  1830,
      60,  3197,  1833,   175,    45,    66,   751,  1838,   147,    62,
     137,  1842,  1843,  1844,  1845,  2273,  1924,  2262,  1849,   222,
    1851,   288,   262,  2258,  2259,   157,  1857,  1924,    18,  1860,
    1861,  1862,   112,   141,   280,   112,   328,   112,  2276,    60,
     178,    35,   112,  1442,    90,   141,  1355,    24,    33,   145,
     157,   339,    11,    54,   161,    42,   135,  2435,   145,   229,
      35,   141,   345,   808,   141,   172,   141,     8,    61,   431,
     359,    15,    16,   141,  3725,   431,   141,  1908,  1909,  1910,
    1911,   215,   918,    10,    98,  1027,   391,    76,   175,    65,
     336,  2381,  3149,   314,    60,   431,   752,   124,   245,    15,
      16,    15,    16,    15,    16,    15,    16,   145,  1417,   116,
      15,    16,   401,   109,    20,   336,   360,   468,   172,  2202,
     175,   210,    15,    16,   498,   157,   114,    33,    15,    16,
      15,    16,    15,    16,    15,    16,  1078,   205,  2373,  2374,
    1082,    47,   251,   462,    12,   498,   386,  2885,  2545,   190,
     171,    57,    58,   529,   113,   145,   928,   929,    50,    15,
      16,   398,  3234,   175,   820,   208,    15,    16,    15,    16,
      65,  3243,  3368,   170,   278,  3546,   970,   971,   972,   498,
     245,  3297,    15,    16,    20,   292,   175,    40,   109,   448,
     245,  3263,   813,   965,   208,   284,  3268,    33,   345,   193,
     254,  2876,  2170,   561,   580,   171,   130,  2406,   205,  1325,
     222,    47,   586,    15,    16,  2953,  1153,   579,   193,   524,
     329,    57,    58,   579,   165,    15,    16,   583,   141,  2626,
     467,    15,    16,   210,   227,  2551,   374,   311,  3209,    15,
      16,   170,    74,   579,   414,   462,   167,   464,  2590,   363,
     382,  2278,   511,   604,   498,  2282,  3305,   125,    15,    16,
     330,   175,   554,   259,   481,   175,   293,  2614,   485,  2296,
    2297,   231,   262,   262,   262,   382,   205,   494,   413,  2306,
    2622,   498,  2223,   500,   940,   346,   360,  1792,   244,   506,
    1345,  1277,   581,   278,  1280,   512,  3353,  2678,   581,   587,
     344,  3952,  1288,   347,  2216,  2332,  1337,   284,  1617,  1029,
    3681,  1345,   579,  1818,    15,    16,   344,   534,   535,   347,
     541,  1118,  1042,   563,    63,   344,   327,   314,   347,  1315,
    1316,  1126,   245,   579,   394,   331,   553,  2420,   259,   407,
    2281,   129,  2283,  1011,  1012,   562,  1595,   564,  1143,  2290,
     382,   372,  3401,   145,  2262,   493,  2381,  1606,   575,   576,
    1609,  1416,  2303,   580,  1032,  2262,  1743,  1865,  2309,   586,
     576,   588,   589,  1041,   420,  2402,   593,   594,   581,   506,
    2381,   598,  1416,  2324,   425,  1053,  1054,  1055,   347,    15,
      16,   608,   609,   610,  1062,   448,   386,   614,  3153,  2657,
     344,   535,  2647,   347,  2662,  2663,   372,   539,  1913,   581,
     331,  1310,   557,   557,    15,    16,   555,  2655,  1355,  1924,
    2209,  1589,  2241,  2681,   521,   553,    15,    16,   344,   748,
     344,   347,   344,   347,   344,   347,  3686,   347,   603,   344,
     509,   658,   347,  2375,  2260,  2141,   581,   374,   575,  2417,
     548,   344,   560,  2775,   347,   527,  2176,   344,  2289,   344,
     347,   344,   347,   344,   347,  2755,   347,  3663,  1907,   509,
    2301,   509,  3521,  2381,   581,    15,    16,   585,   557,   493,
    1417,  2564,  2565,  1792,  2381,   579,   157,   480,   344,   585,
    3606,   347,   581,   558,   581,   344,   472,   344,   347,   716,
     347,   718,    15,    16,   498,   585,  1162,   431,   585,   530,
     585,   344,   586,   541,   347,   566,  2996,   585,  2372,  2754,
     585,   413,   566,   498,   520,   742,   743,   744,   535,   746,
     747,   748,   851,   750,   751,   752,  1281,   743,   566,   466,
     584,   747,   344,   540,   750,   347,  2888,   566,  2379,   581,
    3030,  3031,  1261,   581,   344,    15,    16,   347,  3038,  1215,
     344,   580,   581,   347,   530,  3045,    15,    16,   344,  2891,
     787,   347,  3621,   563,  1230,    15,    16,   472,  2894,  2778,
    3551,   798,  1203,   160,  2926,   501,   513,   344,    15,    16,
     347,   808,   809,  2940,  2986,   427,   813,  2944,   196,   520,
     560,   802,   558,   820,  1913,    15,    16,    15,    16,    99,
    1231,   540,   102,  3729,   467,  1924,  2994,  2995,   358,  1349,
    2902,   527,   566,  3695,  3002,  3697,   553,  3005,  3006,   126,
      15,    16,    15,    16,   851,   488,   580,   581,  3475,    50,
    3192,   547,   548,   344,  3022,   558,   347,   386,   440,  2940,
     566,   439,   566,  2944,   566,   579,   566,   294,  3036,   583,
     513,   566,    66,  3041,  3042,  3043,  3044,   581,   580,   581,
     580,   798,   585,   566,   131,   580,   581,    15,    16,   566,
      78,   566,   809,   566,   334,   566,   109,   580,   581,    15,
      16,   527,   415,  1740,   581,   912,   581,   580,   581,   580,
     581,  2784,  2960,  2615,  2616,   178,  1836,    15,    16,  1740,
     566,   382,   431,  3762,   426,   245,  1425,   566,   344,   566,
     342,   347,  1769,   940,  3479,   581,   943,   944,   205,  2606,
    2755,   580,   581,   566,   581,    31,  2241,  2660,  1769,  2647,
    2194,  2195,   138,   344,  1993,   149,   347,  1733,   581,  1370,
    2647,    95,   148,   330,  2755,   344,  1742,  2262,   347,  1745,
    1746,  1948,    15,    16,   566,   231,    15,    16,   190,   409,
    3301,    15,    16,   990,   278,  2718,   566,   994,  3835,   581,
    2062,   448,   566,    15,    16,   262,  1105,  3087,   792,   172,
     566,   581,   113,  1513,    68,    15,    16,   581,   176,    15,
      16,    15,    16,   205,   344,   581,   493,   347,   305,   566,
     232,  1565,  1029,  1608,   126,   345,    12,   944,  3370,  1613,
      22,  2675,  2221,  1142,   581,  1042,  2203,   261,  2719,   183,
    2328,   344,    15,    16,   347,  3177,   259,  3184,  3185,   579,
     431,   201,   210,   203,    15,    16,   143,  2755,   213,  2068,
    2069,   195,  1907,    15,    16,  1792,   335,   222,  2755,   496,
     579,    15,    16,   990,   587,   566,  2949,   994,   539,  3208,
    2375,    15,    16,  1907,   472,  1092,  2381,   381,  1623,   145,
     581,   360,    15,    16,   344,   522,  2159,   347,  1105,  2159,
     141,   895,   349,  2061,  4010,   344,   431,   251,   347,   594,
     221,   374,  1221,  2071,   344,   382,   172,   347,   331,    51,
     581,  2685,  3251,   210,  3614,   431,   327,   344,    60,   175,
     347,   601,   602,    15,    16,  1142,   222,  1672,  1673,   125,
    1147,   581,  2241,   109,   344,  1152,   344,   347,   515,   347,
     566,   581,   346,  2970,   448,  1162,  2219,   343,   244,  2219,
     152,    15,    16,   175,   531,   581,   431,    15,    16,   344,
     328,   344,   347,  2990,   347,   566,  3721,  2453,  3643,    15,
      16,  1701,   406,    15,    16,    12,  1913,   566,   356,  3099,
     581,  3303,  1199,   381,  1201,   350,  1203,  1924,   579,    15,
      16,   167,   581,   305,    15,    16,    89,   219,  1215,   529,
      15,    16,   413,  1204,  1221,   407,   344,   351,   363,   347,
     545,   546,   502,  1230,  1231,   505,   360,   193,   344,   498,
     493,   347,   366,  2422,  1241,  1152,   566,   151,   439,    15,
      16,   328,  1249,  1352,   109,  2308,   344,   183,  2308,   347,
    2963,   581,    15,    16,   579,  1262,  1263,  1264,  1265,  1266,
    1267,   746,   518,   566,   178,  1256,  1262,  1263,  1264,   369,
    1266,  1278,  1279,   579,  1281,   321,  2375,   165,   581,   447,
    1287,   186,  2381,  1279,    12,   541,  3831,   574,   575,   576,
     577,  1287,   436,   259,   315,   431,    69,     0,   125,   363,
    1307,   344,   167,   113,   347,   344,   256,   520,   347,   395,
     344,   497,   376,   347,   579,   251,   566,   451,   476,   251,
      15,    16,   344,    18,   229,   347,   110,   566,   211,    15,
      16,   581,   472,   345,   344,   559,   566,   347,   344,   541,
     344,   347,   581,   347,   145,  1352,   229,   235,  1265,   566,
    1267,   581,  2647,  3524,    41,  2275,  2276,   240,   145,  1366,
     310,   509,   229,  1370,   581,   331,   566,  1358,   566,  3481,
     493,   344,   431,   240,   347,  3574,  3575,   114,  1369,   581,
     315,   581,   580,   344,   440,   587,   347,    15,    16,   476,
    1307,   566,   344,   566,   259,   347,   554,   125,   171,   151,
     344,   337,   280,   347,   538,   580,   374,   580,  3318,   549,
     344,   221,    33,   347,  1421,   246,  1423,  1424,   249,  1426,
    1427,   344,    15,    16,   347,   580,   490,  1423,  1424,   186,
    2502,   314,  1439,   581,  1441,   208,   220,    58,   566,   327,
     345,    95,  2419,   579,    61,    15,    16,   134,   512,  1366,
     566,  3523,   580,    15,    16,    15,    16,   194,   336,   232,
    2755,   518,   344,   109,   580,   347,   331,   554,   566,   939,
     572,   573,   574,   575,   576,   577,   113,   498,    99,    12,
    2065,   102,   580,  2546,   541,    24,  2546,    15,    16,   110,
     344,    15,    16,   347,   581,  2534,   344,   151,   466,   347,
     436,   259,   523,   327,    15,    16,  1513,  1514,   344,    15,
      16,   347,   344,  1971,  2241,   347,    15,    16,   988,  1628,
     579,   167,   472,   566,   178,   262,  1984,   566,   344,    15,
      16,   347,   566,   344,   472,   418,   347,   580,    12,   344,
     587,   580,   347,  2127,   566,   513,   580,    15,    16,    15,
      16,   418,   383,  4018,   520,  3199,   566,     8,   580,  2017,
     566,    19,   566,   498,    20,  3715,  1573,   469,   344,   139,
     580,   347,   509,   331,   580,   399,   580,    33,    29,   517,
     213,   344,    15,    16,   347,   553,   359,   222,   523,   222,
      69,    47,   125,   566,   477,   497,   354,    15,    16,   372,
     325,    57,    58,  3862,   388,   566,   241,   580,  1615,  3741,
     227,    16,   386,   259,   566,   175,  1623,    15,    16,   580,
    2078,  1628,   566,   446,   324,   325,  3767,  1634,   580,  1636,
     490,   405,   566,   493,  1641,  1642,   580,  1644,    15,    16,
      15,    16,   151,   566,   579,   370,   580,   175,  2375,   344,
    1657,   125,   347,  1660,  2381,   520,  2755,   580,   344,   117,
     434,   347,   204,    15,    16,  1672,  1673,  1674,  1675,   178,
     560,   210,  2665,    15,    16,  1682,  1683,  1684,   538,  1670,
     580,   581,    15,    16,   566,   331,  3228,  3229,    77,  1680,
     186,   581,   171,  1700,   478,   316,  3895,  3896,   580,  3241,
     464,   584,  1709,  2696,    93,  3247,   323,   493,    15,    16,
     533,  2704,   566,  1704,  2707,    24,   344,   350,   566,   347,
     374,   485,    15,    16,  1641,  1642,   580,  1644,  3270,   208,
     566,  3273,   580,  3883,   566,  2655,   190,  1744,   529,   530,
    1657,   532,   109,  1660,   580,   284,   569,  2558,   580,  1756,
     566,   344,   315,   232,   347,   566,  1763,  1674,  1675,   208,
    2597,   566,   520,   109,   580,  1682,  1683,  1684,  2288,   580,
    3501,  3502,  3503,  3504,   344,   580,  2597,   347,   232,   495,
    2789,   573,   344,   232,   344,   347,  1777,   347,   580,   328,
     566,   580,   581,    15,    16,  1786,  1787,   579,    30,  2719,
     167,  2810,  2811,   566,   580,   587,  1797,  1798,  1799,  1800,
     541,  1802,  1803,  1922,    15,    16,   344,   580,   208,   347,
     344,   167,  2831,   347,   109,   446,   193,  1744,  3978,  2605,
    3980,  3464,  2895,   344,   143,  2895,   347,   573,   344,   493,
      72,   347,   122,  3087,   580,   344,  1763,   193,   347,   580,
     581,   468,  1859,  4003,   339,  1964,    16,   137,   344,   513,
    1969,   347,   315,   480,   431,   579,  1873,   490,   175,   208,
     493,   566,   439,   587,   520,   204,   344,  1884,   344,   347,
     566,   347,   167,   208,   505,  2948,    57,    58,  2948,    16,
    4040,  4041,   259,   372,   580,    66,   186,  1888,  1889,   553,
    1891,   210,  1893,  1894,  1895,  1896,  1897,   139,   193,  1900,
    1901,   344,   533,   259,   347,  1922,   201,   219,  2981,   541,
    1927,  2981,    46,  1930,  2508,    24,   344,   128,   175,   347,
    1937,  1938,  1939,  1940,  1930,   498,  1943,   476,   566,   471,
    3466,  3574,  3575,   475,   560,  2054,   344,   564,  1642,   347,
    1644,   548,   580,   580,   551,  1188,   262,  1964,  1191,   581,
     523,  1194,  1969,   587,   331,   587,   126,   344,   536,   344,
     347,    70,   347,   566,   259,   284,   585,  2086,   545,   546,
     341,  3672,    18,  3674,    70,   331,   466,   580,  1682,  1683,
    1684,  3180,   344,   579,  3615,   347,   566,   266,   267,   126,
    3644,  3732,   344,   171,   566,   347,   566,     6,  2543,  2965,
    2966,   344,   579,   407,   347,   554,   579,    11,   580,   328,
    1937,  1938,  1939,  2520,  2521,  2522,   579,  3095,  2755,  3650,
    3098,   579,  3653,  3654,  3655,  3656,   579,   344,   566,  2497,
     347,  3050,   566,   579,   143,   498,   331,  2054,   498,   580,
     581,   344,  2587,    89,   347,   566,   580,   143,   579,   158,
     566,   580,   581,  2560,  2561,  2562,   579,   566,   541,   580,
     523,   527,  2079,   581,   580,  2184,   579,  2186,  2187,  2086,
     566,  3714,  3715,   421,   579,  3148,  3002,   579,  3148,  3005,
    3006,   458,   580,   581,   580,   551,   579,    70,   566,   154,
     566,    15,    16,    89,   579,   141,  3022,   336,  3085,   145,
    3754,   210,   580,   476,   580,   580,   581,   580,   581,  2228,
    2229,   421,   344,   579,   210,   347,   579,   396,   397,  3750,
    3751,    57,    58,   566,   170,  2142,   172,   369,  3759,    56,
     580,   581,   579,   344,   579,   305,   347,   580,   566,   579,
     186,   579,  2159,   520,   184,   191,   579,   495,   390,   579,
      24,   587,   580,   580,   581,   579,  3799,   476,   566,   205,
    2177,  2178,   580,   581,   520,   211,   579,  2184,   305,  2186,
    2187,  3814,   580,   219,   579,   284,  2177,   419,   160,   566,
    2299,   566,   126,   229,  3827,   580,   581,   579,  3266,  3105,
     538,  3269,   342,   580,   240,   580,    70,   579,   501,   245,
     580,   581,  2219,   579,   566,   553,  2325,   579,   254,     6,
     579,  2228,  2229,   322,   566,   211,   580,   581,   580,   328,
     580,   581,   579,   566,   579,   520,   322,   210,   580,   471,
     157,   373,   328,   229,   161,   554,   490,   580,   580,   581,
    3883,   281,   282,  3321,   240,   172,   286,   287,   579,   566,
     579,  2268,  3895,  3896,   580,   581,  2273,   579,    55,  4000,
     336,  2278,   581,   566,    70,  2282,   579,  2284,   314,   501,
     579,  2269,   442,   443,   579,    81,   205,  2294,   222,  2296,
    2297,  2279,  2299,   579,   158,  2286,  2287,  2285,   579,  2306,
     336,  2308,  3935,   579,   109,   579,   392,   112,    12,   345,
    2317,   579,  3945,   580,   581,   442,   443,   579,  2325,  2307,
    2311,   580,   581,   579,  2312,  2332,  2333,   579,   314,   579,
    2318,  2319,   581,  2918,    15,    16,   579,    41,   374,   580,
     581,   579,   129,   579,   566,  3978,   210,  3980,   579,   322,
     336,   579,   324,   325,   579,   328,   579,  3990,   330,   579,
       3,  2819,   167,   580,   581,   566,     9,    10,   580,   581,
    4003,   305,  4005,   579,  4007,   292,   579,   476,    82,   579,
    2371,  4014,   418,    87,   580,   581,    29,   579,   193,    60,
     476,  4024,    35,   579,  2401,  2402,    39,   579,    69,  2857,
    2317,  2898,    70,   439,   579,   107,   579,  4040,  4041,    80,
     570,   571,   572,   573,   574,   575,   576,   577,   579,   392,
     284,   579,   103,   104,   105,   106,   107,   579,  4061,  4062,
      98,   579,   418,  4066,    73,   579,    75,   579,   234,   525,
     579,   477,   579,   570,   571,   572,   573,   574,   575,   576,
     577,   580,   581,   579,   259,   554,   541,   542,   322,   544,
     579,   546,   580,   581,   328,   382,   580,   581,   554,   580,
     581,  3510,   174,   112,   579,   143,  3396,  3397,   580,   581,
     580,   581,   581,  3067,  2401,   580,   581,   130,    25,   580,
     581,   477,    31,   529,   133,   581,   580,   581,   200,    48,
     171,   580,   581,   476,   540,   541,   177,   303,   442,   443,
    2517,   452,  2519,  2520,  2521,  2522,   197,   198,   199,   200,
     224,   175,   558,  2530,   560,   256,   331,   166,  3434,    66,
      48,   327,   581,    70,  3440,   336,  2543,   208,   325,  2546,
     208,   580,   581,   515,   580,   581,   580,   581,   584,   585,
     135,   136,   525,  2560,  2561,  2562,  1004,  1005,  1006,   531,
     426,   232,   580,   581,   580,   581,  2573,   529,  1016,  2678,
     580,   581,  2579,   574,  2581,   112,  3096,   150,  3641,   439,
    2587,   554,  2573,   580,   581,   580,   581,   126,   384,   293,
      89,   580,   581,   295,   517,   580,   581,   299,   385,  1047,
     387,    11,  1050,   579,   306,   580,   581,  1079,  1080,   245,
    3083,  3084,   476,  2530,   295,   283,   297,   298,   299,    25,
      26,   172,  1070,  1071,   472,   306,  1074,   580,   581,   580,
     581,   472,   300,  3752,  3753,   472,   570,   571,   572,   573,
     574,   575,   576,   577,   278,  1093,  1094,  3412,  3413,   353,
    2657,    57,    58,    59,   322,  2662,  2663,   490,  2665,   256,
      66,  2904,  2905,   344,    70,   142,   347,  2866,  2867,   581,
     466,  2678,    78,   338,  2681,  3131,  3132,    79,   380,   486,
     580,   141,   112,   222,    98,    95,     6,   586,  2679,  2696,
     554,   579,    98,    97,     4,   232,  2687,  2704,    12,   380,
    2707,   372,   553,   113,   430,   244,   112,    54,  3747,   115,
    2717,   399,   211,   154,    98,   520,   202,   587,   581,  2726,
     581,    95,  2729,    66,    12,   557,  2733,   429,   580,   498,
     229,  3204,  2739,   580,   125,     9,  2743,   143,   581,  2746,
     580,   240,   587,  2739,   580,   587,  2753,   428,   429,   579,
     454,   479,   480,   244,   393,   483,   484,   143,  2765,   487,
     587,   489,   581,  3487,  3488,  2772,   305,    48,   178,   586,
     560,  3834,   581,  3357,   490,   579,  2783,   151,   278,  3799,
    3409,  3410,  3411,   487,   455,   324,   325,   324,   325,   251,
    3696,   278,   581,   330,  3814,   205,   358,   581,  2907,   336,
     509,   581,   208,  3614,   178,  3844,   509,  3827,   476,   581,
     216,   125,  2729,   581,  2923,   314,   581,   222,   574,  3445,
       6,   172,   223,   491,   488,   231,   162,    13,    14,   581,
     172,   581,   450,    60,   208,   372,   534,   336,   361,    25,
      26,   121,    69,   336,  2851,   255,   581,   490,    95,   579,
     145,  3371,  2859,    80,   556,  2772,   395,   580,   145,   530,
     581,   145,   145,   145,   581,   508,   568,   145,  2859,    55,
    3909,   562,   515,    59,    60,   556,  2883,   283,    64,   145,
     194,   255,   145,   145,    70,   566,   567,   568,  2895,  2896,
     126,  2898,    78,   536,   300,   145,   145,   145,   435,    85,
    2907,  3625,   145,   442,   443,  3629,  2913,   145,   126,   536,
     145,   145,    98,    46,   453,  3935,  2923,   540,   178,   418,
     336,   336,   126,  3467,  2931,  3945,   112,   336,   581,   115,
     177,  3404,  3405,   175,  3407,  3408,   122,   123,   580,   580,
    3566,  2948,   580,   129,   171,   126,   352,   580,   580,   477,
     177,   137,   574,  2960,   360,   141,   580,   143,   175,  3683,
    3684,   208,   581,  2970,   374,  2972,   580,   573,   579,   581,
    3990,   580,   580,  4036,  2981,   503,  4036,    35,   477,  2986,
     580,   208,   580,  2990,   170,  4005,   222,  4007,   580,   580,
    3099,  3516,   581,   530,  4014,   369,  4059,   580,  1446,   580,
     374,   440,   579,   579,  4024,   232,   577,   579,   255,   386,
     580,   558,   581,  3919,  3920,  4078,  3922,   423,  4078,   209,
     206,   579,   208,   482,   579,   753,   184,   437,   587,   175,
     216,   570,   571,   572,   573,   574,   575,   576,   577,   580,
     448,  4061,  4062,   381,   102,   231,  4066,   439,   581,   581,
     172,   109,   119,    46,  3163,   312,    69,  3963,   430,  3965,
    3966,   359,   359,   437,  3055,   359,   466,  1515,   466,   305,
     476,  1519,   466,   466,   509,  3082,  3083,  3084,   466,   121,
     230,   491,  3073,   493,   491,   491,   230,   305,   494,   121,
     359,   619,  3099,    46,  1542,   491,   624,   283,   359,   357,
     359,   305,   160,   359,   255,   579,   402,   541,   587,   167,
     580,   139,   518,   580,   300,   218,   218,   491,   304,   587,
     581,   495,   580,   529,   305,   580,   654,   580,   580,   196,
     587,   587,   359,  3658,   580,   193,  3143,   587,  3725,   513,
    3249,  3148,   670,  3727,  4052,   372,   460,   461,   462,   463,
     464,   465,   509,   254,   340,   587,  3163,   509,   587,   345,
     509,   498,    89,   477,   538,   251,   352,    46,   581,   509,
     342,   175,   175,   359,   360,   581,   563,   175,   219,   553,
     579,   175,   579,   711,   712,   713,   714,   226,  3179,   256,
     437,   560,   587,   331,   229,   723,   581,  3204,   587,   229,
     348,   259,   296,   389,    98,    98,   442,   443,   455,  3318,
     232,   278,   232,   145,   146,   401,   402,   403,   404,   579,
     587,   579,  3742,   509,   442,   443,  3214,   580,   455,   341,
     186,   581,   415,   498,   579,   359,   345,   423,   442,   443,
     574,   587,  3249,   220,   491,   220,   493,   179,   495,   579,
     579,   574,   580,   580,   580,   580,   188,   315,   580,  3250,
     579,   442,   443,   587,  3373,   580,   336,  3274,   326,   580,
     205,   359,   330,   331,  3281,   246,   580,   175,   581,   581,
     580,   587,   535,   530,   211,   222,    66,   242,   266,  3296,
     476,   538,   336,   225,  3285,   229,   229,   370,   336,   336,
      70,   232,   229,   530,   236,   491,   373,   232,   494,   581,
     581,  3318,    18,   240,   381,   336,   452,   581,   336,    46,
     431,   245,   132,   433,   579,   579,   238,   579,   579,   560,
     186,   263,   518,   441,   570,   571,   572,   573,   574,   575,
     576,   577,  4074,   529,   411,   145,   229,   580,   580,   229,
     580,   579,  3359,   571,   572,   573,   574,   575,   576,   577,
     581,   580,   112,   579,   579,  3952,  3373,   581,   572,   573,
     574,   575,   576,   577,   112,   580,  3960,   368,   579,   587,
      74,   448,   448,   128,   452,  3392,   318,   314,   580,   570,
     571,   572,   573,   574,   575,   576,   577,  3404,  3405,   585,
    3407,  3408,   427,   581,   580,   472,   580,    18,    33,   580,
     580,   580,   580,   580,   580,  3524,  3423,   580,   302,   947,
     234,   381,   219,   490,    70,   560,   493,   580,   580,    46,
     579,   587,  3957,   191,   579,    81,  4020,   302,   581,   581,
     498,   386,   498,   498,   502,   541,   541,   505,   579,   579,
     579,   579,   579,   579,   551,   535,   579,   515,  4045,   551,
     112,   232,   520,   232,   330,   523,  3473,  3474,   331,   331,
     302,   156,  1000,  1001,   120,   580,   232,  3484,   493,   579,
     545,  1009,  1010,  1011,  1012,  1013,  1014,  1015,   581,   498,
     498,   418,  1020,  4080,    16,  1023,  1024,   498,  1026,   580,
    1028,   580,  3509,   219,  1032,   541,   326,  1035,  1036,  1037,
    1038,   470,  1040,  1041,   572,   573,   415,  3524,   541,    35,
    1048,  1049,    13,  1051,  1052,  1053,  1054,  1055,   581,  1057,
     546,  1059,  1060,  1061,  1062,  1063,  1064,  1065,  1066,  1067,
    1068,  1069,   331,   560,  1072,  1073,   580,  1075,   231,  1077,
     477,   342,   535,  1081,   267,  1083,  1084,  3474,   481,   172,
     579,   140,   557,    30,  3571,   579,   172,  1095,  1096,  3576,
     580,    18,   579,  1101,   580,   580,  1104,   588,   355,   579,
     500,   121,   121,  1111,  1112,  1113,   102,  1115,   234,   579,
     143,   374,  3509,   109,  1122,  1123,  1124,    88,  1126,  1127,
    1128,  1129,  1130,    68,  1132,  1133,  1134,  1135,  1136,  1137,
    1138,  1139,   145,   394,     5,  1143,  1144,   557,   175,    30,
      60,   342,    60,   581,   482,   116,   580,   247,    46,    46,
     579,   579,   219,   503,  3641,   139,   120,   342,   129,   585,
    3647,   342,    89,   128,   160,    46,  3755,    46,   138,    46,
      16,   167,   557,   139,   204,   585,   261,   303,   111,   588,
     151,   134,   153,   580,   580,  3672,   579,  3674,    46,  3676,
     145,    46,    46,   164,   270,    52,   580,   193,   324,   325,
     424,   327,   585,   580,   145,   139,   501,  3694,   189,   581,
     165,   581,   205,   184,   141,   580,   585,    52,   145,   581,
    3707,   172,   406,   172,   179,   331,   172,   579,   501,   559,
     112,   247,   546,   188,   439,   173,  2090,   208,  3581,  1903,
    3061,  1249,  2257,  3294,   215,   172,   602,  3608,  3728,  1257,
    3902,   925,  3903,  3292,  3296,  3472,  4080,  4032,   384,   186,
    3464,  3464,  3464,   259,   191,  4042,  3464,  3932,  3755,  3464,
    3792,  3464,  3464,  3862,   624,  3464,  3763,  3464,  3749,  3464,
     235,   236,  3932,   254,   211,  3464,  3896,  3464,  3818,  3817,
     963,  3464,   219,  1361,  2535,  2883,  1363,  3510,  1617,  3480,
    2310,  3647,   229,  3145,   654,  3909,  3745,  3916,   263,  3844,
    3957,  1416,   472,   240,  3076,  1865,  3400,  3658,   245,   315,
     670,  2758,  2402,  2990,  1873,  3914,  2335,   254,  2970,  2271,
    3013,  3046,  3432,  3213,   330,   331,  3013,  3258,  3249,  3742,
     466,  2974,  2923,  3680,  3426,  3693,    12,  3834,   264,   265,
     266,   267,   268,   269,    12,   271,   272,   273,   274,   275,
     276,   277,  3684,   279,   714,  3683,   321,  3557,  1430,    25,
      26,  3625,  1935,  3617,  3484,  3862,  3629,  3440,  3849,  3850,
    1872,  2328,  2972,  3218,  1751,  2154,  2971,   314,  1322,  1412,
     944,  3878,  3879,  2530,  1674,  2121,  2168,   547,  3518,  1689,
    2859,    57,    58,    59,   375,  1042,   838,  2938,  2508,   336,
      66,  3539,  1970,  2220,    70,  3399,   371,  3878,   345,  2746,
    3879,  1080,    78,   394,  2981,  2072,  3393,  3914,  4020,   400,
    1016,  3373,  2173,  3753,  1940,  1231,  2158,   408,  1203,  2117,
    3148,  2890,    98,  2948,  1452,  2889,  4059,   374,  3834,   537,
    3937,  1439,   527,   615,  1633,  1741,   112,  3944,  1270,   115,
     431,  2872,  2717,  1236,  3907,  3953,  4055,  4078,  3869,  3926,
    3251,  1695,  2895,   444,   445,  2589,  2931,  1249,  3174,  3381,
     396,   397,  1239,  1660,   519,  3499,   821,   143,  2517,  3505,
    1196,   418,  1421,   520,   825,  2048,   468,  2487,   602,  1100,
     468,   602,   498,   602,    -1,    -1,   502,    -1,    -1,   505,
      -1,    -1,   439,    -1,   485,    -1,    -1,  4004,    -1,   515,
      -1,    -1,  4009,    -1,   520,    -1,    -1,   523,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   513,  1551,  1552,  1553,    -1,    -1,    -1,  4036,
     477,    -1,   208,    -1,    -1,    -1,    -1,    -1,  4045,  1567,
     216,    -1,    -1,    -1,   535,    -1,   537,    -1,  4055,    -1,
      -1,    -1,  4059,    -1,    -1,   231,   572,   573,    -1,    -1,
      -1,  1589,    -1,    -1,    -1,    -1,    -1,  1595,   244,    -1,
    1598,  4078,  1600,  4080,    -1,    -1,    -1,   947,  1606,    -1,
    1608,  1609,   529,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   541,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   283,    -1,    -1,
      -1,   558,    -1,   560,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   300,    -1,    -1,    -1,    -1,    -1,
    1000,  1001,    -1,   580,   581,    -1,    -1,   584,   585,  1009,
    1010,  1669,    -1,  1013,  1014,  1015,    -1,    -1,    -1,    -1,
    1020,    -1,    -1,  1023,  1024,    -1,  1026,    -1,  1028,    -1,
      -1,    -1,    -1,    -1,    -1,  1035,  1036,  1037,  1038,    -1,
    1040,    -1,    12,    13,    -1,    -1,   352,    -1,  1048,  1049,
      -1,  1051,  1052,    -1,   360,    -1,    -1,  1057,    -1,  1059,
    1060,  1061,    -1,    -1,  1064,  1065,  1066,  1067,  1068,  1069,
      -1,    -1,  1072,  1073,    -1,  1075,    -1,  1077,    -1,    -1,
      -1,  1081,    -1,  1083,  1084,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  1095,  1096,    -1,    -1,    -1,
      -1,  1101,    -1,    -1,  1104,    -1,    -1,    -1,    -1,    -1,
      -1,  1111,  1112,  1113,    13,    14,    -1,   423,    88,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,
      -1,    30,    -1,    -1,    -1,    34,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  1144,    -1,   116,    -1,    -1,    48,
      49,    -1,    -1,    -1,    -1,    -1,    55,    -1,    -1,   129,
      59,    60,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     476,    -1,    -1,    72,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   151,    -1,   153,    -1,   491,    -1,    -1,   494,    88,
      -1,    -1,    -1,    -1,   164,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   108,
      -1,    -1,   518,    -1,   184,    -1,    -1,   116,   117,   118,
      -1,    -1,    -1,   529,    -1,    -1,    -1,    -1,  1886,   128,
     129,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   208,    -1,
      -1,    -1,   141,    -1,    -1,   215,    -1,    -1,    -1,  1249,
      -1,    -1,    -1,    -1,   153,    -1,    -1,  1257,    -1,    -1,
      -1,    -1,    12,    13,    -1,    -1,    -1,    -1,    -1,    -1,
     169,    -1,    -1,   579,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   254,   184,    -1,    -1,    -1,    -1,
     189,    -1,  1950,   192,    -1,    -1,  1954,    -1,    -1,    -1,
      -1,  1959,  1960,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    1968,    -1,    -1,  1971,    -1,    -1,   215,    -1,   217,    -1,
      -1,    -1,    -1,  1981,    -1,  1983,  1984,    -1,  1986,  1987,
    1988,  1989,  1990,    -1,   233,  1993,    -1,    -1,    88,    -1,
      -1,    -1,    -1,    -1,  2002,    -1,    -1,    -1,    -1,    -1,
      -1,   250,  2010,    -1,  2012,   254,  2014,  2015,  2016,  2017,
      -1,    -1,    -1,  2021,  2022,  2023,   116,    -1,    -1,    -1,
    2028,  2029,  2030,    -1,  2032,    -1,  2034,    -1,  2036,   129,
    2038,    -1,  2040,    -1,    -1,    -1,    -1,  2045,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  2055,    -1,    -1,
      -1,   151,    -1,   153,  2062,   375,    -1,  2065,    -1,    -1,
      -1,    -1,    -1,  2071,   164,    -1,  2074,    -1,    -1,    -1,
    2078,    -1,    -1,    -1,   394,    -1,    -1,    -1,    -1,    -1,
     400,    -1,    -1,    -1,   184,    -1,    -1,    -1,   408,    -1,
      -1,   340,    -1,    25,    26,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,  1452,    -1,    -1,    -1,    -1,    -1,   208,    -1,
     359,   431,    -1,    -1,    -1,   215,    -1,    -1,    -1,    -1,
     369,    -1,    -1,    -1,   444,   445,    -1,    59,    -1,    -1,
     379,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    70,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    78,    -1,    -1,    -1,
     399,    -1,    -1,   402,   254,   404,    -1,    -1,   407,    -1,
      -1,   410,    -1,   412,    -1,   485,    98,    -1,   417,    -1,
     419,    -1,    -1,    -1,    -1,    -1,    -1,   426,    -1,    -1,
     112,    -1,   431,   115,    -1,    -1,    -1,    -1,    -1,    -1,
     439,    -1,    -1,   513,    -1,   444,    -1,    -1,    -1,   448,
      -1,  1551,  1552,  1553,    -1,    -1,    -1,    -1,    25,    26,
      -1,   143,    -1,    -1,    -1,   535,    -1,   537,    -1,    -1,
      -1,    -1,   471,    -1,    -1,    -1,   475,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1589,
      57,    58,    59,    -1,    -1,    -1,    -1,    -1,  1598,    66,
    1600,    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    78,   103,   104,   105,   106,   107,   516,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   375,   208,    -1,    -1,   528,
      -1,    98,    -1,   532,   216,    -1,   535,    -1,    -1,    -1,
      -1,   540,    -1,    -1,   394,   112,    -1,    -1,   115,   231,
     400,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   408,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   565,    -1,    -1,  1669,
      -1,    -1,    -1,    -1,    -1,    -1,   143,    -1,    -1,    -1,
     579,   431,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   444,   445,    -1,    -1,    13,    14,
      -1,   283,    -1,    -1,    -1,    -1,   197,   198,   199,   200,
      -1,    -1,    -1,    28,    -1,    -1,    -1,    -1,   300,    34,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    48,    49,   485,    -1,    -1,    -1,    -1,
      55,   208,    -1,    -1,    59,    60,    -1,    -1,    -1,   216,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    72,    -1,    -1,
      -1,    -1,    -1,   513,   231,  2423,    -1,    -1,    -1,  2427,
     352,    -1,    -1,    88,    -1,    -1,    -1,    -1,   360,    -1,
      -1,    -1,    -1,    -1,    -1,   535,    -1,   537,    -1,    -1,
      -1,  2449,  2450,   108,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   116,   117,   118,   295,    -1,   297,   298,   299,    -1,
      -1,  2469,    -1,   128,   129,   306,   283,    -1,    -1,    -1,
    2478,    -1,  2480,    -1,  2482,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   300,    -1,    -1,    -1,    -1,   153,  2497,
      -1,   423,    -1,    -1,  2502,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   169,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,  2524,    -1,    -1,   184,
      -1,    -1,    -1,    -1,   189,    -1,  2534,   192,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   352,  1886,    -1,    -1,   380,
      -1,    -1,    -1,   360,   476,    -1,    -1,    -1,    -1,    -1,
     215,    -1,   217,    -1,    -1,    -1,    -1,    -1,    -1,   491,
      -1,    -1,   494,    -1,    -1,    -1,    -1,    -1,   233,    -1,
      -1,    -1,    -1,    -1,  2582,    -1,    -1,    -1,  2586,    -1,
      -1,    -1,    -1,    -1,    -1,   250,   518,   428,   429,   254,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   529,    -1,    -1,
    1950,    -1,    -1,    -1,  1954,    -1,   423,    -1,    -1,  1959,
    1960,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1968,    -1,
      -1,  2629,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,  1981,    -1,  1983,    -1,    -1,  1986,  1987,  1988,  1989,
    1990,    -1,    -1,    -1,  2652,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,  2002,    -1,    -1,    -1,    -1,    -1,    -1,   476,
    2010,    -1,  2012,    -1,  2014,  2015,  2016,    -1,    -1,    -1,
      -1,  2021,  2022,  2023,   491,   340,    -1,   494,  2028,  2029,
    2030,    -1,  2032,    -1,  2034,    -1,  2036,    -1,  2038,    -1,
    2040,    -1,    -1,    -1,   359,  2045,    -1,    -1,    -1,    -1,
      -1,   518,    -1,    -1,   369,  2055,    -1,    -1,    -1,    -1,
      -1,    -1,   529,    -1,   379,   556,    -1,    -1,    -1,    -1,
      -1,  2071,    -1,    -1,  2074,    -1,   567,   568,  2736,  2737,
      -1,    -1,    -1,    -1,   399,    -1,    -1,   402,    -1,   404,
      -1,    -1,   407,    -1,    -1,   410,    -1,   412,    -1,    32,
      33,    -1,   417,    -1,   419,    38,    -1,    40,    -1,    42,
      43,   426,    -1,    -1,    -1,    -1,   431,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   439,    58,    -1,    -1,    -1,   444,
      -1,    -1,    -1,   448,  2792,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   471,    -1,  2816,  2817,
     475,  2819,    -1,    -1,    -1,    -1,    99,    -1,    -1,   102,
    2828,    -1,    -1,    -1,    -1,  2833,    -1,   110,  2836,    -1,
    2838,  2839,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   127,    -1,    -1,    -1,    -1,  2857,
      -1,   516,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    2868,   144,    -1,   528,    -1,    -1,    -1,   532,    -1,    -1,
     535,    -1,    -1,    -1,    -1,   540,    -1,    -1,    -1,    -1,
      -1,  2889,    -1,   166,    -1,   168,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   180,   181,    -1,
     565,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    2918,    -1,    -1,    -1,   579,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  2932,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   220,    -1,    -1,
      -1,    -1,  2950,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   248,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   257,   258,    -1,   260,    -1,    -1,
      -1,    -1,    -1,    23,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   289,   290,   291,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    57,    58,    -1,
      -1,    -1,    -1,    -1,   307,   308,   309,    67,    -1,    69,
     313,    -1,    -1,   316,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    84,    -1,    86,    -1,    88,   332,
     333,    -1,    -1,    -1,    -1,    -1,    96,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,  2423,    -1,    -1,    -1,  2427,    -1,    -1,
      -1,   364,   365,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2449,
    2450,    -1,   142,   143,    -1,   388,    -1,   147,    -1,    -1,
     150,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2469,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2478,    -1,
    2480,    -1,  2482,    -1,    -1,    -1,   176,    -1,   178,    -1,
      -1,  3149,    -1,   183,    -1,   185,    -1,    -1,    -1,    -1,
      -1,    -1,   435,    -1,    -1,    -1,   439,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   449,   207,   208,    -1,
      -1,    -1,   212,    -1,  2524,    -1,    -1,    -1,    -1,    -1,
    3188,  3189,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  3197,
     230,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   251,    -1,    -1,    -1,    -1,   499,    -1,    -1,   502,
      -1,    -1,   505,   506,   507,   508,    -1,    -1,    -1,    -1,
      -1,    -1,  2582,     6,    -1,    -1,  2586,    -1,   278,    -1,
      13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    25,    26,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   547,   548,    -1,    -1,    -1,    -1,
     310,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2629,
     320,    -1,    55,    -1,    -1,   568,    59,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    70,    -1,   339,
      -1,    -1,  2652,    -1,    -1,    78,    -1,    -1,    -1,    -1,
      -1,    -1,    85,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3328,    -1,   362,    -1,    -1,    98,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   373,   374,    -1,    -1,   377,   378,   112,
      -1,    -1,   115,    -1,    -1,  3353,    -1,    -1,    -1,   122,
      -1,    -1,    -1,    -1,    -1,    -1,   129,    -1,    -1,    -1,
    3368,    -1,    -1,    -1,   137,    -1,    -1,    -1,    -1,    -1,
     143,    -1,    -1,  3381,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,  2736,  2737,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   436,   170,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   448,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   472,    -1,    -1,   208,   476,    -1,    -1,    -1,
      -1,    -1,  2792,   216,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   493,    -1,    -1,  3464,    -1,   231,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,  2816,  2817,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2828,    -1,
      -1,    -1,    -1,  2833,    -1,    -1,  2836,    -1,  2838,  2839,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,  3510,    -1,    -1,    -1,    -1,    -1,    -1,   549,
     283,    -1,    -1,    -1,  3522,   555,    -1,    -1,  2868,    -1,
      -1,    -1,    -1,  3531,    -1,  3533,    -1,   300,    -1,    -1,
      -1,   304,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2889,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3568,    -1,    -1,    -1,    -1,    -1,  3574,  3575,    -1,    -1,
      -1,    -1,   345,    -1,    -1,    -1,    -1,    -1,    -1,   352,
      -1,    -1,  2932,    -1,    -1,    -1,    -1,   360,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    2950,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   402,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     423,    -1,    -1,    -1,    -1,  3663,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,  3700,    -1,  3702,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   476,  3712,    -1,  3714,  3715,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   491,    -1,
      -1,   494,    -1,    -1,    -1,    -1,    -1,    -1,  3736,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  3747,
      -1,    -1,    -1,    -1,    -1,   518,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   529,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  3797,
      -1,  3799,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  3149,
      -1,    -1,    -1,    -1,    -1,    -1,  3814,  3815,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  3827,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  3835,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,  3844,    -1,  3188,  3189,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  3197,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  3882,  3883,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  3895,  3896,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,  3909,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  3935,    -1,    -1,
      -1,    -1,    -1,    -1,  3942,    -1,    -1,  3945,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,  3971,    -1,    -1,    -1,    -1,    -1,    -1,
    3978,    -1,  3980,    -1,    -1,    -1,    -1,    -1,  3328,    -1,
      -1,    -1,  3990,    -1,    -1,  3993,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  4003,    -1,  4005,    -1,  4007,
      -1,    -1,    -1,  3353,    -1,    -1,  4014,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,  4024,    -1,  3368,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,  3381,  4040,  4041,    -1,    -1,    -1,    -1,  4046,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,  4061,  4062,    -1,    -1,    -1,  4066,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,  3522,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,  3531,    -1,  3533,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  3568,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,  3663,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3700,    -1,  3702,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,  3712,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  3797,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  3815,    -1,    -1,    -1,    -1,
      -1,     5,    -1,     7,     8,     9,    10,    11,    -1,    -1,
      -1,    -1,    -1,    17,    -1,  3835,    20,    -1,    22,    23,
      24,    25,    26,    27,    28,    -1,    30,    -1,    -1,    33,
      34,    35,    36,    37,    38,    39,    -1,    41,    42,    43,
      44,    45,    -1,    47,    48,    -1,    -1,    51,    52,    53,
      54,    -1,    56,    57,    58,    59,    -1,    61,    62,    63,
      64,    65,  3882,    67,    68,    -1,    70,    71,    72,    73,
      74,    75,    76,    -1,    78,    79,    -1,    81,    82,    -1,
      84,    85,    86,    87,    -1,    -1,    90,    91,    92,    -1,
      94,    95,    -1,    97,    98,    99,   100,   101,   102,    -1,
      -1,    -1,    -1,   107,   108,   109,    -1,    -1,   112,   113,
      -1,   115,    -1,    -1,    -1,   119,    -1,   121,   122,   123,
     124,    -1,  3942,    -1,   128,    -1,    -1,   131,   132,   133,
      -1,    -1,    -1,   137,    -1,   139,   140,    -1,   142,   143,
     144,    -1,    -1,   147,    -1,   149,   150,   151,   152,   153,
     154,  3971,   156,   157,   158,   159,   160,   161,   162,    -1,
     164,   165,   166,   167,    -1,   169,    -1,    -1,    -1,   173,
     174,    -1,   176,  3993,   178,    -1,   180,   181,   182,   183,
      -1,   185,    -1,   187,    -1,   189,   190,    -1,   192,   193,
      -1,   195,   196,    -1,    -1,    -1,   200,   201,   202,   203,
     204,    -1,   206,   207,    -1,    -1,   210,    -1,   212,    -1,
      -1,   215,   216,   217,   218,    -1,    -1,   221,    -1,   223,
     224,    -1,   226,   227,    -1,    -1,  4046,   231,    -1,    -1,
     234,   235,    -1,   237,   238,    -1,   240,   241,   242,    -1,
      -1,    -1,    -1,    -1,   248,   249,    -1,   251,    -1,   253,
      -1,   255,   256,    -1,    -1,   259,    -1,    -1,    -1,    -1,
     264,   265,   266,   267,   268,   269,   270,   271,   272,   273,
     274,   275,   276,    -1,   278,   279,   280,   281,   282,   283,
     284,   285,   286,   287,   288,    -1,    -1,    -1,   292,   293,
     294,   295,   296,    -1,    -1,   299,   300,   301,   302,    -1,
     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
      -1,   315,   316,   317,    -1,    -1,   320,   321,   322,   323,
     324,   325,   326,   327,   328,    -1,   330,   331,    -1,   333,
     334,   335,    -1,   337,   338,   339,    -1,   341,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   351,   352,   353,
     354,   355,   356,   357,   358,   359,   360,   361,   362,   363,
     364,   365,   366,   367,    -1,   369,   370,   371,    -1,   373,
      -1,   375,   376,   377,   378,    -1,   380,   381,   382,    -1,
      -1,   385,    -1,    -1,    -1,   389,   390,   391,   392,   393,
      -1,    -1,   396,   397,   398,    -1,   400,   401,    -1,   403,
     404,   405,   406,   407,   408,    -1,   410,   411,   412,    -1,
     414,   415,    -1,    -1,   418,   419,   420,   421,   422,   423,
     424,   425,   426,   427,    -1,   429,   430,    -1,    -1,    -1,
     434,   435,   436,   437,    -1,    -1,    -1,   441,    -1,    -1,
      -1,   445,   446,   447,   448,    -1,   450,   451,   452,   453,
     454,    -1,    -1,    -1,    -1,    -1,    -1,   461,   462,    -1,
     464,    -1,    -1,   467,    -1,    -1,   470,   471,   472,   473,
     474,   475,   476,    -1,   478,   479,   480,   481,   482,   483,
     484,   485,   486,   487,   488,   489,   490,   491,    -1,    -1,
     494,   495,   496,    -1,   498,   499,   500,    -1,   502,   503,
     504,   505,    -1,    -1,    -1,    -1,   510,   511,   512,    -1,
     514,   515,   516,   517,   518,   519,   520,   521,   522,   523,
     524,   525,    -1,   527,   528,    -1,    -1,   531,    -1,    -1,
     534,    -1,   536,    -1,   538,   539,    -1,    -1,   542,   543,
     544,   545,   546,    -1,    -1,   549,   550,    -1,   552,   553,
     554,   555,   556,    -1,    -1,    -1,    -1,   561,   562,    -1,
     564,   565,    -1,    -1,   568,    -1,    -1,    -1,   572,   573,
      -1,    -1,    -1,    -1,   578,   579,    -1,    -1,   582,   583,
      -1,    -1,   586,   587,     5,    -1,     7,     8,     9,    10,
      11,    12,    -1,    -1,    -1,    -1,    17,    -1,    -1,    20,
      -1,    22,    23,    24,    25,    26,    27,    28,    -1,    30,
      -1,    -1,    33,    34,    35,    36,    37,    38,    39,    -1,
      41,    42,    43,    -1,    45,    -1,    47,    48,    -1,    -1,
      51,    52,    53,    54,    -1,    56,    57,    58,    59,    -1,
      61,    62,    63,    64,    65,    -1,    67,    68,    -1,    70,
      71,    72,    73,    74,    75,    76,    -1,    78,    79,    -1,
      81,    82,    -1,    84,    85,    86,    87,    -1,    -1,    90,
      91,    92,    -1,    94,    95,    -1,    97,    98,    99,   100,
     101,   102,    -1,    -1,    -1,    -1,   107,   108,   109,    -1,
      -1,   112,   113,    -1,   115,    -1,    -1,    -1,   119,    -1,
     121,   122,   123,   124,    -1,    -1,    -1,   128,    -1,    -1,
     131,   132,   133,    -1,    -1,    -1,   137,    -1,   139,   140,
      -1,   142,   143,   144,    -1,    -1,   147,    -1,   149,   150,
     151,   152,   153,   154,    -1,   156,   157,   158,   159,   160,
     161,   162,    -1,   164,   165,   166,   167,    -1,   169,    -1,
      -1,    -1,   173,   174,    -1,   176,    -1,   178,    -1,   180,
     181,   182,   183,    -1,   185,    -1,   187,    -1,   189,   190,
      -1,   192,   193,    -1,   195,   196,    -1,    -1,    -1,   200,
     201,   202,   203,   204,    -1,   206,   207,    -1,    -1,   210,
      -1,   212,    -1,    -1,   215,   216,   217,   218,    -1,    -1,
     221,    -1,   223,   224,    -1,   226,   227,    -1,    -1,    -1,
     231,    -1,    -1,   234,   235,    -1,    -1,   238,    -1,   240,
     241,   242,    -1,    -1,    -1,    -1,    -1,   248,   249,    -1,
     251,    -1,   253,    -1,   255,   256,    -1,    -1,   259,    -1,
      -1,    -1,    -1,   264,   265,   266,   267,   268,   269,   270,
     271,   272,   273,   274,   275,   276,    -1,   278,   279,   280,
     281,   282,   283,   284,   285,   286,   287,   288,    -1,    -1,
      -1,   292,   293,   294,   295,   296,    -1,    -1,   299,   300,
     301,   302,    -1,   304,   305,   306,   307,   308,   309,   310,
     311,   312,   313,    -1,   315,   316,   317,    -1,    -1,   320,
     321,   322,   323,   324,   325,   326,   327,   328,    -1,   330,
     331,    -1,   333,   334,   335,   336,   337,   338,   339,    -1,
     341,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     351,   352,   353,   354,   355,   356,   357,   358,   359,   360,
     361,   362,   363,   364,   365,   366,   367,    -1,   369,   370,
     371,    -1,   373,    -1,   375,   376,   377,   378,    -1,   380,
     381,   382,    -1,    -1,   385,    -1,    -1,    -1,   389,   390,
     391,   392,   393,    -1,    -1,   396,   397,   398,    -1,   400,
     401,    -1,   403,   404,   405,   406,   407,   408,    -1,   410,
     411,   412,    -1,   414,   415,    -1,    -1,   418,   419,   420,
     421,   422,   423,   424,   425,   426,   427,    -1,   429,   430,
      -1,    -1,    -1,   434,   435,   436,   437,    -1,    -1,    -1,
     441,    -1,    -1,    -1,   445,   446,   447,   448,    -1,   450,
     451,   452,   453,   454,    -1,    -1,    -1,    -1,    -1,    -1,
     461,   462,    -1,   464,    -1,    -1,   467,    -1,    -1,   470,
     471,   472,   473,   474,   475,   476,    -1,   478,   479,   480,
     481,   482,   483,   484,   485,   486,   487,   488,   489,   490,
     491,    -1,    -1,   494,   495,   496,    -1,   498,   499,   500,
      -1,   502,   503,   504,   505,    -1,    -1,    -1,    -1,    -1,
     511,   512,    -1,   514,   515,   516,   517,   518,   519,   520,
     521,   522,   523,   524,   525,    -1,   527,   528,    -1,    -1,
     531,    -1,    -1,   534,    -1,   536,    -1,   538,   539,    -1,
      -1,   542,   543,   544,   545,   546,    -1,    -1,   549,   550,
      -1,   552,   553,   554,   555,   556,    -1,    -1,    -1,    -1,
     561,   562,    -1,   564,   565,    -1,    -1,   568,    -1,    -1,
      -1,   572,   573,    -1,    -1,    -1,    -1,   578,   579,    -1,
      -1,   582,   583,    -1,    -1,   586,   587,     5,    -1,     7,
       8,     9,    10,    11,    -1,    -1,    -1,    -1,    -1,    17,
      -1,    -1,    20,    -1,    22,    23,    24,    25,    26,    27,
      28,    -1,    30,    -1,    -1,    33,    34,    35,    36,    37,
      38,    39,    -1,    41,    42,    43,    -1,    45,    -1,    47,
      48,    -1,    -1,    51,    52,    53,    54,    -1,    56,    57,
      58,    59,    -1,    61,    62,    63,    64,    65,    -1,    67,
      68,    -1,    70,    71,    72,    73,    74,    75,    76,    -1,
      78,    79,    -1,    81,    82,    -1,    84,    85,    86,    87,
      -1,    -1,    90,    91,    92,    -1,    94,    95,    -1,    97,
      98,    99,   100,   101,   102,    -1,    -1,    -1,    -1,   107,
     108,   109,    -1,    -1,   112,   113,    -1,   115,    -1,    -1,
      -1,   119,    -1,   121,   122,   123,   124,    -1,    -1,    -1,
     128,    -1,    -1,   131,   132,   133,    -1,    -1,    -1,   137,
      -1,   139,   140,    -1,   142,   143,   144,    -1,    -1,   147,
      -1,   149,   150,   151,   152,   153,   154,    -1,   156,   157,
     158,   159,   160,   161,   162,    -1,   164,   165,   166,   167,
      -1,   169,    -1,    -1,    -1,   173,   174,    -1,   176,    -1,
     178,    -1,   180,   181,   182,   183,    -1,   185,    -1,   187,
      -1,   189,   190,    -1,   192,   193,    -1,   195,   196,    -1,
      -1,    -1,   200,   201,   202,   203,   204,    -1,   206,   207,
      -1,    -1,   210,    -1,   212,    -1,    -1,   215,   216,   217,
     218,    -1,    -1,   221,    -1,   223,   224,    -1,   226,   227,
      -1,    -1,    -1,   231,    -1,    -1,   234,   235,    -1,    -1,
     238,    -1,   240,   241,   242,    -1,    -1,    -1,    -1,    -1,
     248,   249,    -1,   251,    -1,   253,    -1,   255,   256,    -1,
      -1,   259,    -1,    -1,    -1,    -1,   264,   265,   266,   267,
     268,   269,   270,   271,   272,   273,   274,   275,   276,    -1,
     278,   279,   280,   281,   282,   283,   284,   285,   286,   287,
     288,    -1,    -1,    -1,   292,   293,   294,   295,   296,    -1,
      -1,   299,   300,   301,   302,    -1,   304,   305,   306,   307,
     308,   309,   310,   311,   312,   313,    -1,   315,   316,   317,
      -1,    -1,   320,   321,   322,   323,   324,   325,   326,   327,
     328,    -1,   330,   331,    -1,   333,   334,   335,    -1,   337,
     338,   339,    -1,   341,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   351,   352,   353,   354,   355,   356,   357,
     358,   359,   360,   361,   362,   363,   364,   365,   366,   367,
      -1,   369,   370,   371,    -1,   373,    -1,   375,   376,   377,
     378,    -1,   380,   381,   382,    -1,    -1,   385,    -1,    -1,
      -1,   389,   390,   391,   392,   393,    -1,    -1,   396,   397,
     398,    -1,   400,   401,    -1,   403,   404,   405,   406,   407,
     408,    -1,   410,   411,   412,    -1,   414,   415,    -1,    -1,
     418,   419,   420,   421,   422,   423,   424,   425,   426,   427,
      -1,   429,   430,   431,    -1,    -1,   434,   435,   436,   437,
      -1,    -1,    -1,   441,    -1,    -1,    -1,   445,   446,   447,
     448,    -1,   450,   451,   452,   453,   454,    -1,    -1,    -1,
      -1,    -1,    -1,   461,   462,    -1,   464,    -1,    -1,   467,
      -1,    -1,   470,   471,   472,   473,   474,   475,   476,    -1,
     478,   479,   480,   481,   482,   483,   484,   485,   486,   487,
     488,   489,   490,   491,    -1,    -1,   494,   495,   496,    -1,
     498,   499,   500,    -1,   502,   503,   504,   505,    -1,    -1,
      -1,    -1,    -1,   511,   512,    -1,   514,   515,   516,   517,
     518,   519,   520,   521,   522,   523,   524,   525,    -1,   527,
     528,    -1,    -1,   531,    -1,    -1,   534,    -1,   536,    -1,
     538,   539,    -1,    -1,   542,   543,   544,   545,   546,    -1,
      -1,   549,   550,    -1,   552,   553,   554,   555,   556,    -1,
      -1,    -1,    -1,   561,   562,    -1,   564,   565,    -1,    -1,
     568,    -1,    -1,    -1,   572,   573,    -1,    -1,    -1,    -1,
     578,   579,    -1,    -1,   582,   583,    -1,    -1,   586,   587,
       5,    -1,     7,     8,     9,    10,    11,    -1,    -1,    -1,
      -1,    -1,    17,    -1,    -1,    20,    -1,    22,    23,    24,
      25,    26,    27,    28,    -1,    30,    -1,    -1,    33,    34,
      35,    36,    37,    38,    39,    -1,    41,    42,    43,    -1,
      45,    -1,    47,    48,    -1,    -1,    51,    52,    53,    54,
      -1,    56,    57,    58,    59,    -1,    61,    62,    63,    64,
      65,    -1,    67,    68,    -1,    70,    71,    72,    73,    74,
      75,    76,    -1,    78,    79,    -1,    81,    82,    -1,    84,
      85,    86,    87,    -1,    -1,    90,    91,    92,    -1,    94,
      95,    -1,    97,    98,    99,   100,   101,   102,    -1,    -1,
      -1,    -1,   107,   108,   109,    -1,    -1,   112,   113,    -1,
     115,    -1,    -1,    -1,   119,    -1,   121,   122,   123,   124,
      -1,    -1,    -1,   128,    -1,    -1,   131,   132,   133,    -1,
      -1,    -1,   137,    -1,   139,   140,    -1,   142,   143,   144,
      -1,    -1,   147,    -1,   149,   150,   151,   152,   153,   154,
      -1,   156,   157,   158,   159,   160,   161,   162,    -1,   164,
     165,   166,   167,    -1,   169,    -1,    -1,    -1,   173,   174,
      -1,   176,    -1,   178,    -1,   180,   181,   182,   183,    -1,
     185,    -1,   187,    -1,   189,   190,    -1,   192,   193,    -1,
     195,   196,    -1,    -1,    -1,   200,   201,   202,   203,   204,
      -1,   206,   207,    -1,    -1,   210,    -1,   212,    -1,    -1,
     215,   216,   217,   218,    -1,    -1,   221,    -1,   223,   224,
      -1,   226,   227,    -1,    -1,    -1,   231,    -1,    -1,   234,
     235,    -1,    -1,   238,    -1,   240,   241,   242,    -1,    -1,
      -1,    -1,    -1,   248,   249,    -1,   251,    -1,   253,    -1,
     255,   256,    -1,    -1,   259,    -1,    -1,    -1,    -1,   264,
     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
     275,   276,    -1,   278,   279,   280,   281,   282,   283,   284,
     285,   286,   287,   288,    -1,    -1,    -1,   292,   293,   294,
     295,   296,    -1,    -1,   299,   300,   301,   302,    -1,   304,
     305,   306,   307,   308,   309,   310,   311,   312,   313,    -1,
     315,   316,   317,    -1,    -1,   320,   321,   322,   323,   324,
     325,   326,   327,   328,    -1,   330,   331,    -1,   333,   334,
     335,    -1,   337,   338,   339,    -1,   341,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   351,   352,   353,   354,
     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
     365,   366,   367,    -1,   369,   370,   371,    -1,   373,    -1,
     375,   376,   377,   378,    -1,   380,   381,   382,    -1,    -1,
     385,    -1,    -1,    -1,   389,   390,   391,   392,   393,    -1,
      -1,   396,   397,   398,    -1,   400,   401,    -1,   403,   404,
     405,   406,   407,   408,    -1,   410,   411,   412,    -1,   414,
     415,    -1,    -1,   418,   419,   420,   421,   422,   423,   424,
     425,   426,   427,    -1,   429,   430,    -1,    -1,    -1,   434,
     435,   436,   437,    -1,    -1,    -1,   441,    -1,    -1,    -1,
     445,   446,   447,   448,    -1,   450,   451,   452,   453,   454,
      -1,    -1,    -1,    -1,    -1,    -1,   461,   462,    -1,   464,
      -1,    -1,   467,    -1,    -1,   470,   471,   472,   473,   474,
     475,   476,    -1,   478,   479,   480,   481,   482,   483,   484,
     485,   486,   487,   488,   489,   490,   491,    -1,    -1,   494,
     495,   496,    -1,   498,   499,   500,    -1,   502,   503,   504,
     505,    -1,    -1,    -1,    -1,    -1,   511,   512,    -1,   514,
     515,   516,   517,   518,   519,   520,   521,   522,   523,   524,
     525,    -1,   527,   528,    -1,    -1,   531,    -1,    -1,   534,
      -1,   536,    -1,   538,   539,    -1,    -1,   542,   543,   544,
     545,   546,    -1,    -1,   549,   550,    -1,   552,   553,   554,
     555,   556,    -1,    -1,    -1,    -1,   561,   562,    -1,   564,
     565,    -1,    -1,   568,    -1,    -1,    -1,   572,   573,    -1,
      -1,    -1,    -1,   578,   579,   580,    -1,   582,   583,    -1,
      -1,   586,   587,     5,    -1,     7,     8,     9,    10,    11,
      -1,    -1,    -1,    -1,    -1,    17,    -1,    -1,    20,    -1,
      22,    23,    24,    25,    26,    27,    28,    -1,    30,    -1,
      -1,    33,    34,    35,    36,    37,    38,    39,    -1,    41,
      42,    43,    -1,    45,    -1,    47,    48,    -1,    -1,    51,
      52,    53,    54,    -1,    56,    57,    58,    59,    -1,    61,
      62,    63,    64,    65,    -1,    67,    68,    -1,    70,    71,
      72,    73,    74,    75,    76,    -1,    78,    79,    -1,    81,
      82,    -1,    84,    85,    86,    87,    -1,    -1,    90,    91,
      92,    -1,    94,    95,    -1,    97,    98,    99,   100,   101,
     102,    -1,    -1,    -1,    -1,   107,   108,   109,    -1,    -1,
     112,   113,    -1,   115,    -1,    -1,    -1,   119,    -1,   121,
     122,   123,   124,    -1,    -1,    -1,   128,    -1,    -1,   131,
     132,   133,    -1,    -1,    -1,   137,    -1,   139,   140,    -1,
     142,   143,   144,    -1,    -1,   147,    -1,   149,   150,   151,
     152,   153,   154,    -1,   156,   157,   158,   159,   160,   161,
     162,    -1,   164,   165,   166,   167,    -1,   169,    -1,    -1,
      -1,   173,   174,   175,   176,    -1,   178,    -1,   180,   181,
     182,   183,    -1,   185,    -1,   187,    -1,   189,   190,    -1,
     192,   193,    -1,   195,   196,    -1,    -1,    -1,   200,   201,
     202,   203,   204,    -1,   206,   207,    -1,    -1,   210,    -1,
     212,    -1,    -1,   215,   216,   217,   218,    -1,    -1,   221,
      -1,   223,   224,    -1,   226,   227,    -1,    -1,    -1,   231,
      -1,    -1,   234,   235,    -1,    -1,   238,    -1,   240,   241,
     242,    -1,    -1,    -1,    -1,    -1,   248,   249,    -1,   251,
      -1,   253,    -1,   255,   256,    -1,    -1,   259,    -1,    -1,
      -1,    -1,   264,   265,   266,   267,   268,   269,   270,   271,
     272,   273,   274,   275,   276,    -1,   278,   279,   280,   281,
     282,   283,   284,   285,   286,   287,   288,    -1,    -1,    -1,
     292,   293,   294,   295,   296,    -1,    -1,   299,   300,   301,
     302,    -1,   304,   305,   306,   307,   308,   309,   310,   311,
     312,   313,    -1,   315,   316,   317,    -1,    -1,   320,   321,
     322,   323,   324,   325,   326,   327,   328,    -1,   330,   331,
      -1,   333,   334,   335,    -1,   337,   338,   339,    -1,   341,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   351,
     352,   353,   354,   355,   356,   357,   358,   359,   360,   361,
     362,   363,   364,   365,   366,   367,    -1,   369,   370,   371,
      -1,   373,    -1,   375,   376,   377,   378,    -1,   380,   381,
     382,    -1,    -1,   385,    -1,    -1,    -1,   389,   390,   391,
     392,   393,    -1,    -1,   396,   397,   398,    -1,   400,   401,
      -1,   403,   404,   405,   406,   407,   408,    -1,   410,   411,
     412,    -1,   414,   415,    -1,    -1,   418,   419,   420,   421,
     422,   423,   424,   425,   426,   427,    -1,   429,   430,    -1,
      -1,    -1,   434,   435,   436,   437,    -1,    -1,    -1,   441,
      -1,    -1,    -1,   445,   446,   447,   448,    -1,   450,   451,
     452,   453,   454,    -1,    -1,    -1,    -1,    -1,    -1,   461,
     462,    -1,   464,    -1,    -1,   467,    -1,    -1,   470,   471,
     472,   473,   474,   475,   476,    -1,   478,   479,   480,   481,
     482,   483,   484,   485,   486,   487,   488,   489,   490,   491,
      -1,    -1,   494,   495,   496,    -1,   498,   499,   500,    -1,
     502,   503,   504,   505,    -1,    -1,    -1,    -1,    -1,   511,
     512,    -1,   514,   515,   516,   517,   518,   519,   520,   521,
     522,   523,   524,   525,    -1,   527,   528,    -1,    -1,   531,
      -1,    -1,   534,    -1,   536,    -1,   538,   539,    -1,    -1,
     542,   543,   544,   545,   546,    -1,    -1,   549,   550,    -1,
     552,   553,   554,   555,   556,    -1,    -1,    -1,    -1,   561,
     562,    -1,   564,   565,    -1,    -1,   568,    -1,    -1,    -1,
     572,   573,    -1,    -1,    -1,    -1,   578,   579,    -1,    -1,
     582,   583,    -1,    -1,   586,   587,     5,    -1,     7,     8,
       9,    10,    11,    -1,    -1,    -1,    -1,    -1,    17,    -1,
      -1,    20,    -1,    22,    23,    24,    25,    26,    27,    28,
      -1,    30,    -1,    -1,    33,    34,    35,    36,    37,    38,
      39,    -1,    41,    42,    43,    -1,    45,    -1,    47,    48,
      -1,    -1,    51,    52,    53,    54,    -1,    56,    57,    58,
      59,    -1,    61,    62,    63,    64,    65,    -1,    67,    68,
      -1,    70,    71,    72,    73,    74,    75,    76,    -1,    78,
      79,    -1,    81,    82,    -1,    84,    85,    86,    87,    -1,
      -1,    90,    91,    92,    -1,    94,    95,    -1,    97,    98,
      99,   100,   101,   102,    -1,    -1,    -1,    -1,   107,   108,
     109,    -1,    -1,   112,   113,    -1,   115,    -1,    -1,    -1,
     119,    -1,   121,   122,   123,   124,    -1,    -1,    -1,   128,
      -1,    -1,   131,   132,   133,    -1,    -1,    -1,   137,    -1,
     139,   140,    -1,   142,   143,   144,    -1,    -1,   147,    -1,
     149,   150,   151,   152,   153,   154,    -1,   156,   157,   158,
     159,   160,   161,   162,    -1,   164,   165,   166,   167,    -1,
     169,    -1,    -1,    -1,   173,   174,   175,   176,    -1,   178,
      -1,   180,   181,   182,   183,    -1,   185,    -1,   187,    -1,
     189,   190,    -1,   192,   193,    -1,   195,   196,    -1,    -1,
      -1,   200,   201,   202,   203,   204,    -1,   206,   207,    -1,
      -1,   210,    -1,   212,    -1,    -1,   215,   216,   217,   218,
      -1,    -1,   221,    -1,   223,   224,    -1,   226,   227,    -1,
      -1,    -1,   231,    -1,    -1,   234,   235,    -1,    -1,   238,
      -1,   240,   241,   242,    -1,    -1,    -1,    -1,    -1,   248,
     249,    -1,   251,    -1,   253,    -1,   255,   256,    -1,    -1,
     259,    -1,    -1,    -1,    -1,   264,   265,   266,   267,   268,
     269,   270,   271,   272,   273,   274,   275,   276,    -1,   278,
     279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
      -1,    -1,    -1,   292,   293,   294,   295,   296,    -1,    -1,
     299,   300,   301,   302,    -1,   304,   305,   306,   307,   308,
     309,   310,   311,   312,   313,    -1,   315,   316,   317,    -1,
      -1,   320,   321,   322,   323,   324,   325,   326,   327,   328,
      -1,   330,   331,    -1,   333,   334,   335,    -1,   337,   338,
     339,    -1,   341,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   351,   352,   353,   354,   355,   356,   357,   358,
     359,   360,   361,   362,   363,   364,   365,   366,   367,    -1,
     369,   370,   371,    -1,   373,    -1,   375,   376,   377,   378,
      -1,   380,   381,   382,    -1,    -1,   385,    -1,    -1,    -1,
     389,   390,   391,   392,   393,    -1,    -1,   396,   397,   398,
      -1,   400,   401,    -1,   403,   404,   405,   406,   407,   408,
      -1,   410,   411,   412,    -1,   414,   415,    -1,    -1,   418,
     419,   420,   421,   422,   423,   424,   425,   426,   427,    -1,
     429,   430,    -1,    -1,    -1,   434,   435,   436,   437,    -1,
      -1,    -1,   441,    -1,    -1,    -1,   445,   446,   447,   448,
      -1,   450,   451,   452,   453,   454,    -1,    -1,    -1,    -1,
      -1,    -1,   461,   462,    -1,   464,    -1,    -1,   467,    -1,
      -1,   470,   471,   472,   473,   474,   475,   476,    -1,   478,
     479,   480,   481,   482,   483,   484,   485,   486,   487,   488,
     489,   490,   491,    -1,    -1,   494,   495,   496,    -1,   498,
     499,   500,    -1,   502,   503,   504,   505,    -1,    -1,    -1,
      -1,    -1,   511,   512,    -1,   514,   515,   516,   517,   518,
     519,   520,   521,   522,   523,   524,   525,    -1,   527,   528,
      -1,    -1,   531,    -1,    -1,   534,    -1,   536,    -1,   538,
     539,    -1,    -1,   542,   543,   544,   545,   546,    -1,    -1,
     549,   550,    -1,   552,   553,   554,   555,   556,    -1,    -1,
      -1,    -1,   561,   562,    -1,   564,   565,    -1,    -1,   568,
      -1,    -1,    -1,   572,   573,    -1,    -1,    -1,    -1,   578,
     579,    -1,    -1,   582,   583,    -1,    -1,   586,   587,     5,
      -1,     7,     8,     9,    10,    11,    -1,    -1,    -1,    -1,
      -1,    17,    -1,    -1,    20,    -1,    22,    23,    24,    25,
      26,    27,    28,    -1,    30,    -1,    -1,    33,    34,    35,
      36,    37,    38,    39,    -1,    41,    42,    43,    -1,    45,
      -1,    47,    48,    -1,    -1,    51,    52,    53,    54,    -1,
      56,    57,    58,    59,    -1,    61,    62,    63,    64,    65,
      -1,    67,    68,    -1,    70,    71,    72,    73,    74,    75,
      76,    -1,    78,    79,    -1,    81,    82,    -1,    84,    85,
      86,    87,    -1,    -1,    90,    91,    92,    -1,    94,    95,
      -1,    97,    98,    99,   100,   101,   102,    -1,    -1,    -1,
      -1,   107,   108,   109,    -1,    -1,   112,   113,    -1,   115,
      -1,    -1,    -1,   119,    -1,   121,   122,   123,   124,    -1,
      -1,    -1,   128,    -1,    -1,   131,   132,   133,    -1,    -1,
      -1,   137,    -1,   139,   140,    -1,   142,   143,   144,    -1,
      -1,   147,    -1,   149,   150,   151,   152,   153,   154,    -1,
     156,   157,   158,   159,   160,   161,   162,    -1,   164,   165,
     166,   167,    -1,   169,    -1,    -1,    -1,   173,   174,   175,
     176,    -1,   178,    -1,   180,   181,   182,   183,    -1,   185,
      -1,   187,    -1,   189,   190,    -1,   192,   193,    -1,   195,
     196,    -1,    -1,    -1,   200,   201,   202,   203,   204,    -1,
     206,   207,    -1,    -1,   210,    -1,   212,    -1,    -1,   215,
     216,   217,   218,    -1,    -1,   221,    -1,   223,   224,    -1,
     226,   227,    -1,    -1,    -1,   231,    -1,    -1,   234,   235,
      -1,    -1,   238,    -1,   240,   241,   242,    -1,    -1,    -1,
      -1,    -1,   248,   249,    -1,   251,    -1,   253,    -1,   255,
     256,    -1,    -1,   259,    -1,    -1,    -1,    -1,   264,   265,
     266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
     276,    -1,   278,   279,   280,   281,   282,   283,   284,   285,
     286,   287,   288,    -1,    -1,    -1,   292,   293,   294,   295,
     296,    -1,    -1,   299,   300,   301,   302,    -1,   304,   305,
     306,   307,   308,   309,   310,   311,   312,   313,    -1,   315,
     316,   317,    -1,    -1,   320,   321,   322,   323,   324,   325,
     326,   327,   328,    -1,   330,   331,    -1,   333,   334,   335,
      -1,   337,   338,   339,    -1,   341,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   351,   352,   353,   354,   355,
     356,   357,   358,   359,   360,   361,   362,   363,   364,   365,
     366,   367,    -1,   369,   370,   371,    -1,   373,    -1,   375,
     376,   377,   378,    -1,   380,   381,   382,    -1,    -1,   385,
      -1,    -1,    -1,   389,   390,   391,   392,   393,    -1,    -1,
     396,   397,   398,    -1,   400,   401,    -1,   403,   404,   405,
     406,   407,   408,    -1,   410,   411,   412,    -1,   414,   415,
      -1,    -1,   418,   419,   420,   421,   422,   423,   424,   425,
     426,   427,    -1,   429,   430,    -1,    -1,    -1,   434,   435,
     436,   437,    -1,    -1,    -1,   441,    -1,    -1,    -1,   445,
     446,   447,   448,    -1,   450,   451,   452,   453,   454,    -1,
      -1,    -1,    -1,    -1,    -1,   461,   462,    -1,   464,    -1,
      -1,   467,    -1,    -1,   470,   471,   472,   473,   474,   475,
     476,    -1,   478,   479,   480,   481,   482,   483,   484,   485,
     486,   487,   488,   489,   490,   491,    -1,    -1,   494,   495,
     496,    -1,   498,   499,   500,    -1,   502,   503,   504,   505,
      -1,    -1,    -1,    -1,    -1,   511,   512,    -1,   514,   515,
     516,   517,   518,   519,   520,   521,   522,   523,   524,   525,
      -1,   527,   528,    -1,    -1,   531,    -1,    -1,   534,    -1,
     536,    -1,   538,   539,    -1,    -1,   542,   543,   544,   545,
     546,    -1,    -1,   549,   550,    -1,   552,   553,   554,   555,
     556,    -1,    -1,    -1,    -1,   561,   562,    -1,   564,   565,
      -1,    -1,   568,    -1,    -1,    -1,   572,   573,    -1,    -1,
      -1,    -1,   578,   579,    -1,    -1,   582,   583,    -1,    -1,
     586,   587,     5,    -1,     7,     8,     9,    10,    11,    -1,
      -1,    -1,    -1,    -1,    17,    -1,    -1,    20,    -1,    22,
      23,    24,    25,    26,    27,    28,    -1,    30,    -1,    -1,
      33,    34,    35,    36,    37,    38,    39,    -1,    41,    42,
      43,    -1,    45,    -1,    47,    48,    -1,    -1,    51,    52,
      53,    54,    -1,    56,    57,    58,    59,    -1,    61,    62,
      63,    64,    65,    -1,    67,    68,    -1,    70,    71,    72,
      73,    74,    75,    76,    -1,    78,    79,    -1,    81,    82,
      -1,    84,    85,    86,    87,    -1,    -1,    90,    91,    92,
      -1,    94,    95,    -1,    97,    98,    99,   100,   101,   102,
      -1,    -1,    -1,    -1,   107,   108,   109,    -1,    -1,   112,
     113,    -1,   115,    -1,    -1,    -1,   119,    -1,   121,   122,
     123,   124,    -1,    -1,    -1,   128,    -1,    -1,   131,   132,
     133,    -1,    -1,    -1,   137,    -1,   139,   140,    -1,   142,
     143,   144,    -1,    -1,   147,    -1,   149,   150,   151,   152,
     153,   154,    -1,   156,   157,   158,   159,   160,   161,   162,
      -1,   164,   165,   166,   167,    -1,   169,    -1,    -1,    -1,
     173,   174,    -1,   176,    -1,   178,    -1,   180,   181,   182,
     183,    -1,   185,    -1,   187,    -1,   189,   190,    -1,   192,
     193,    -1,   195,   196,    -1,    -1,    -1,   200,   201,   202,
     203,   204,    -1,   206,   207,    -1,    -1,   210,    -1,   212,
      -1,    -1,   215,   216,   217,   218,    -1,    -1,   221,    -1,
     223,   224,    -1,   226,   227,    -1,    -1,    -1,   231,    -1,
      -1,   234,   235,    -1,    -1,   238,    -1,   240,   241,   242,
      -1,    -1,    -1,    -1,    -1,   248,   249,    -1,   251,    -1,
     253,    -1,   255,   256,    -1,    -1,   259,    -1,    -1,    -1,
      -1,   264,   265,   266,   267,   268,   269,   270,   271,   272,
     273,   274,   275,   276,    -1,   278,   279,   280,   281,   282,
     283,   284,   285,   286,   287,   288,    -1,    -1,    -1,   292,
     293,   294,   295,   296,    -1,    -1,   299,   300,   301,   302,
      -1,   304,   305,   306,   307,   308,   309,   310,   311,   312,
     313,    -1,   315,   316,   317,    -1,    -1,   320,   321,   322,
     323,   324,   325,   326,   327,   328,    -1,   330,   331,    -1,
     333,   334,   335,    -1,   337,   338,   339,    -1,   341,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   351,   352,
     353,   354,   355,   356,   357,   358,   359,   360,   361,   362,
     363,   364,   365,   366,   367,    -1,   369,   370,   371,    -1,
     373,    -1,   375,   376,   377,   378,    -1,   380,   381,   382,
      -1,    -1,   385,    -1,    -1,    -1,   389,   390,   391,   392,
     393,    -1,    -1,   396,   397,   398,    -1,   400,   401,    -1,
     403,   404,   405,   406,   407,   408,    -1,   410,   411,   412,
      -1,   414,   415,    -1,    -1,   418,   419,   420,   421,   422,
     423,   424,   425,   426,   427,    -1,   429,   430,    -1,    -1,
      -1,   434,   435,   436,   437,    -1,    -1,    -1,   441,    -1,
      -1,    -1,   445,   446,   447,   448,    -1,   450,   451,   452,
     453,   454,    -1,    -1,    -1,    -1,    -1,    -1,   461,   462,
      -1,   464,    -1,    -1,   467,    -1,    -1,   470,   471,   472,
     473,   474,   475,   476,    -1,   478,   479,   480,   481,   482,
     483,   484,   485,   486,   487,   488,   489,   490,   491,    -1,
      -1,   494,   495,   496,    -1,   498,   499,   500,    -1,   502,
     503,   504,   505,    -1,    -1,    -1,    -1,    -1,   511,   512,
      -1,   514,   515,   516,   517,   518,   519,   520,   521,   522,
     523,   524,   525,    -1,   527,   528,    -1,    -1,   531,    -1,
      -1,   534,    -1,   536,    -1,   538,   539,    -1,    -1,   542,
     543,   544,   545,   546,    -1,    -1,   549,   550,    -1,   552,
     553,   554,   555,   556,    -1,    -1,    -1,    -1,   561,   562,
      -1,   564,   565,    -1,    -1,   568,    -1,    -1,    -1,   572,
     573,    -1,    -1,    -1,    -1,   578,   579,    -1,    -1,   582,
     583,    -1,    -1,   586,   587,     5,    -1,     7,     8,     9,
      10,    11,    -1,    -1,    -1,    -1,    -1,    17,    -1,    -1,
      20,    -1,    22,    23,    24,    25,    26,    27,    28,    -1,
      30,    -1,    -1,    33,    34,    35,    36,    37,    38,    39,
      -1,    41,    42,    43,    -1,    45,    -1,    47,    48,    -1,
      -1,    51,    52,    53,    54,    -1,    56,    57,    58,    59,
      -1,    61,    62,    63,    64,    65,    -1,    67,    68,    -1,
      70,    71,    72,    73,    74,    75,    76,    -1,    78,    79,
      -1,    81,    82,    -1,    84,    85,    86,    87,    -1,    -1,
      90,    91,    92,    -1,    94,    95,    -1,    97,    98,    99,
     100,   101,   102,    -1,    -1,    -1,    -1,   107,   108,   109,
      -1,    -1,   112,   113,    -1,   115,    -1,    -1,    -1,   119,
      -1,   121,   122,   123,   124,    -1,    -1,    -1,   128,    -1,
      -1,   131,   132,   133,    -1,    -1,    -1,   137,    -1,   139,
     140,    -1,   142,   143,   144,    -1,    -1,   147,    -1,   149,
     150,   151,   152,   153,   154,    -1,   156,   157,   158,   159,
     160,   161,   162,    -1,   164,   165,   166,   167,    -1,   169,
      -1,    -1,    -1,   173,   174,    -1,   176,    -1,   178,    -1,
     180,   181,   182,   183,    -1,   185,    -1,   187,    -1,   189,
     190,    -1,   192,   193,    -1,   195,   196,    -1,    -1,    -1,
     200,   201,   202,   203,   204,    -1,   206,   207,    -1,    -1,
     210,    -1,   212,    -1,    -1,   215,   216,   217,   218,    -1,
      -1,   221,    -1,   223,   224,    -1,   226,   227,    -1,    -1,
      -1,   231,    -1,    -1,   234,   235,    -1,    -1,   238,    -1,
     240,   241,   242,    -1,    -1,    -1,    -1,    -1,   248,   249,
      -1,   251,    -1,   253,    -1,   255,   256,    -1,    -1,   259,
      -1,    -1,    -1,    -1,   264,   265,   266,   267,   268,   269,
     270,   271,   272,   273,   274,   275,   276,    -1,   278,   279,
     280,   281,   282,   283,   284,   285,   286,   287,   288,    -1,
      -1,    -1,   292,   293,   294,   295,   296,    -1,    -1,   299,
     300,   301,   302,    -1,   304,   305,   306,   307,   308,   309,
     310,   311,   312,   313,    -1,   315,   316,   317,    -1,    -1,
     320,   321,   322,   323,   324,   325,   326,   327,   328,    -1,
     330,   331,    -1,   333,   334,   335,    -1,   337,   338,   339,
      -1,   341,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   351,   352,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,   364,   365,   366,   367,    -1,   369,
     370,   371,    -1,   373,    -1,   375,   376,   377,   378,    -1,
     380,   381,   382,    -1,    -1,   385,    -1,    -1,    -1,   389,
     390,   391,   392,   393,    -1,    -1,   396,   397,   398,    -1,
     400,   401,    -1,   403,   404,   405,   406,   407,   408,    -1,
     410,   411,   412,    -1,   414,   415,    -1,    -1,   418,   419,
     420,   421,   422,   423,   424,   425,   426,   427,    -1,   429,
     430,    -1,    -1,    -1,   434,   435,   436,   437,    -1,    -1,
      -1,   441,    -1,    -1,    -1,   445,   446,   447,   448,    -1,
     450,   451,   452,   453,   454,    -1,    -1,    -1,    -1,    -1,
      -1,   461,   462,    -1,   464,    -1,    -1,   467,    -1,    -1,
     470,   471,   472,   473,   474,   475,   476,    -1,   478,   479,
     480,   481,   482,   483,   484,   485,   486,   487,   488,   489,
     490,   491,    -1,    -1,   494,   495,   496,    -1,   498,   499,
     500,    -1,   502,   503,   504,   505,    -1,    -1,    -1,    -1,
      -1,   511,   512,    -1,   514,   515,   516,   517,   518,   519,
     520,   521,   522,   523,   524,   525,    -1,   527,   528,    -1,
      -1,   531,    -1,    -1,   534,    -1,   536,    -1,   538,   539,
      -1,    -1,   542,   543,   544,   545,   546,    -1,    -1,   549,
     550,    -1,   552,   553,   554,   555,   556,    -1,    -1,    -1,
      -1,   561,   562,    -1,   564,   565,    -1,    -1,   568,    -1,
      -1,    -1,   572,   573,    -1,    -1,    -1,    -1,   578,   579,
      -1,    -1,   582,   583,    -1,    -1,   586,   587,     5,    -1,
       7,     8,     9,    10,    11,    12,    -1,    -1,    -1,    -1,
      17,    -1,    -1,    20,    -1,    22,    23,    24,    25,    26,
      27,    28,    -1,    30,    -1,    -1,    33,    34,    35,    36,
      37,    38,    39,    -1,    41,    42,    43,    -1,    45,    -1,
      47,    48,    -1,    -1,    51,    52,    53,    54,    -1,    56,
      57,    58,    59,    -1,    61,    62,    63,    64,    65,    -1,
      67,    68,    -1,    70,    71,    72,    73,    74,    75,    76,
      -1,    78,    79,    -1,    81,    82,    -1,    84,    85,    86,
      87,    -1,    -1,    90,    91,    92,    -1,    94,    95,    -1,
      97,    98,    99,   100,   101,   102,    -1,    -1,    -1,    -1,
     107,   108,   109,    -1,    -1,   112,   113,    -1,   115,    -1,
      -1,    -1,   119,    -1,   121,   122,   123,   124,    -1,    -1,
      -1,   128,    -1,    -1,   131,   132,   133,    -1,    -1,    -1,
     137,    -1,   139,   140,    -1,   142,   143,   144,    -1,    -1,
     147,    -1,   149,   150,   151,   152,   153,   154,    -1,   156,
     157,   158,   159,   160,   161,   162,    -1,   164,   165,   166,
     167,    -1,   169,    -1,    -1,    -1,   173,   174,    -1,   176,
      -1,   178,    -1,   180,   181,   182,   183,    -1,   185,    -1,
     187,    -1,   189,   190,    -1,   192,   193,    -1,   195,   196,
      -1,    -1,    -1,   200,   201,   202,   203,   204,    -1,   206,
     207,    -1,    -1,   210,    -1,   212,    -1,    -1,   215,   216,
     217,   218,    -1,    -1,   221,    -1,   223,   224,    -1,   226,
     227,    -1,    -1,    -1,   231,    -1,    -1,   234,   235,    -1,
      -1,   238,    -1,   240,   241,   242,    -1,    -1,    -1,    -1,
      -1,   248,   249,    -1,   251,    -1,   253,    -1,   255,   256,
      -1,    -1,   259,    -1,    -1,    -1,    -1,   264,   265,   266,
     267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
      -1,   278,   279,   280,   281,   282,   283,   284,   285,   286,
     287,   288,    -1,    -1,    -1,   292,   293,   294,   295,   296,
      -1,    -1,   299,   300,   301,   302,    -1,   304,   305,   306,
     307,   308,   309,   310,   311,   312,   313,    -1,   315,   316,
     317,    -1,    -1,   320,   321,   322,   323,   324,    -1,   326,
     327,   328,    -1,   330,   331,    -1,   333,   334,   335,    -1,
     337,   338,   339,    -1,   341,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   351,   352,   353,   354,   355,   356,
     357,   358,   359,   360,   361,   362,   363,   364,   365,   366,
     367,    -1,   369,   370,   371,    -1,   373,    -1,   375,   376,
     377,   378,    -1,   380,   381,   382,    -1,    -1,   385,    -1,
      -1,    -1,   389,   390,   391,   392,   393,    -1,    -1,   396,
     397,   398,    -1,   400,   401,    -1,   403,   404,   405,   406,
     407,   408,    -1,   410,   411,   412,    -1,   414,   415,    -1,
      -1,   418,   419,   420,   421,   422,   423,   424,   425,   426,
     427,    -1,   429,   430,    -1,    -1,    -1,   434,   435,   436,
     437,    -1,    -1,    -1,   441,    -1,    -1,    -1,   445,   446,
     447,   448,    -1,   450,   451,   452,   453,   454,    -1,    -1,
      -1,    -1,    -1,    -1,   461,   462,    -1,   464,    -1,    -1,
     467,    -1,    -1,   470,   471,   472,   473,   474,   475,   476,
      -1,   478,   479,   480,   481,   482,   483,   484,   485,   486,
     487,   488,   489,   490,   491,    -1,    -1,   494,   495,   496,
      -1,   498,   499,   500,    -1,   502,   503,   504,   505,    -1,
      -1,    -1,    -1,    -1,   511,   512,    -1,   514,   515,   516,
     517,   518,   519,   520,   521,   522,   523,   524,   525,    -1,
     527,   528,    -1,    -1,   531,    -1,    -1,   534,    -1,   536,
      -1,   538,   539,    -1,    -1,   542,   543,   544,   545,   546,
      -1,    -1,   549,   550,    -1,   552,   553,   554,   555,   556,
      -1,    -1,    -1,    -1,   561,   562,    -1,   564,   565,    -1,
      -1,   568,    -1,    -1,    -1,   572,   573,    -1,    -1,    -1,
      -1,   578,   579,    -1,    -1,   582,   583,    -1,    -1,   586,
     587,     5,    -1,     7,     8,     9,    10,    11,    -1,    -1,
      -1,    -1,    -1,    17,    -1,    -1,    20,    -1,    22,    23,
      24,    25,    26,    27,    28,    -1,    30,    -1,    -1,    33,
      34,    35,    36,    37,    38,    39,    -1,    41,    42,    43,
      -1,    45,    -1,    47,    48,    -1,    -1,    51,    52,    53,
      54,    -1,    56,    57,    58,    59,    -1,    61,    62,    63,
      64,    65,    -1,    67,    68,    -1,    70,    71,    72,    73,
      74,    75,    76,    -1,    78,    79,    -1,    81,    82,    -1,
      84,    85,    86,    87,    -1,    -1,    90,    91,    92,    -1,
      94,    95,    -1,    97,    98,    99,   100,   101,   102,    -1,
      -1,    -1,    -1,   107,   108,   109,    -1,    -1,   112,   113,
      -1,   115,    -1,    -1,    -1,   119,    -1,   121,   122,   123,
     124,    -1,    -1,    -1,   128,    -1,    -1,   131,   132,   133,
      -1,    -1,    -1,   137,    -1,   139,   140,    -1,   142,   143,
     144,    -1,    -1,   147,    -1,   149,   150,   151,   152,   153,
     154,    -1,   156,   157,   158,   159,   160,   161,   162,    -1,
     164,   165,   166,   167,    -1,   169,    -1,    -1,    -1,   173,
     174,    -1,   176,    -1,   178,    -1,   180,   181,   182,   183,
      -1,   185,    -1,   187,    -1,   189,   190,    -1,   192,   193,
      -1,   195,   196,    -1,    -1,    -1,   200,   201,   202,   203,
     204,    -1,   206,   207,    -1,    -1,   210,    -1,   212,    -1,
      -1,   215,   216,   217,   218,    -1,    -1,   221,    -1,   223,
     224,    -1,   226,   227,    -1,    -1,    -1,   231,    -1,    -1,
     234,   235,    -1,    -1,   238,    -1,   240,   241,   242,    -1,
      -1,    -1,    -1,    -1,   248,   249,    -1,   251,    -1,   253,
      -1,   255,   256,    -1,    -1,   259,    -1,    -1,    -1,    -1,
     264,   265,   266,   267,   268,   269,   270,   271,   272,   273,
     274,   275,   276,    -1,   278,   279,   280,   281,   282,   283,
     284,   285,   286,   287,   288,    -1,    -1,    -1,   292,   293,
     294,   295,   296,    -1,    -1,   299,   300,   301,   302,    -1,
     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
      -1,   315,   316,   317,    -1,    -1,   320,   321,   322,   323,
     324,   325,   326,   327,   328,    -1,   330,   331,    -1,   333,
     334,   335,    -1,   337,   338,   339,    -1,   341,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   351,   352,   353,
     354,   355,   356,   357,   358,   359,   360,   361,   362,   363,
     364,   365,   366,   367,    -1,   369,   370,   371,    -1,   373,
      -1,   375,   376,   377,   378,    -1,   380,   381,   382,    -1,
      -1,   385,    -1,    -1,    -1,   389,   390,   391,   392,   393,
      -1,    -1,   396,   397,   398,    -1,   400,   401,    -1,   403,
     404,   405,   406,   407,   408,    -1,   410,   411,   412,    -1,
     414,   415,    -1,    -1,   418,   419,   420,   421,   422,   423,
     424,   425,   426,   427,    -1,   429,   430,    -1,    -1,    -1,
     434,   435,   436,   437,    -1,    -1,    -1,   441,    -1,    -1,
      -1,   445,   446,   447,   448,    -1,   450,   451,   452,   453,
     454,    -1,    -1,    -1,    -1,    -1,    -1,   461,   462,    -1,
     464,    -1,    -1,   467,    -1,    -1,   470,   471,   472,   473,
     474,   475,   476,    -1,   478,   479,   480,   481,   482,   483,
     484,   485,   486,   487,   488,   489,   490,   491,    -1,    -1,
     494,   495,   496,    -1,   498,   499,   500,    -1,   502,   503,
     504,   505,    -1,    -1,    -1,    -1,    -1,   511,   512,    -1,
     514,   515,   516,   517,   518,   519,   520,   521,   522,   523,
     524,   525,    -1,   527,   528,    -1,    -1,   531,    -1,    -1,
     534,    -1,   536,    -1,   538,   539,    -1,    -1,   542,   543,
     544,   545,   546,    -1,    -1,   549,   550,    -1,   552,   553,
     554,   555,   556,    -1,    -1,    -1,    -1,   561,   562,    -1,
     564,   565,    -1,    -1,   568,    -1,    -1,    -1,   572,   573,
      -1,    -1,    -1,    -1,   578,   579,    -1,    -1,   582,   583,
      -1,    -1,   586,   587,     5,    -1,     7,     8,     9,    10,
      11,    -1,    -1,    -1,    -1,    -1,    17,    -1,    -1,    20,
      -1,    22,    23,    24,    25,    26,    27,    28,    -1,    30,
      -1,    -1,    33,    34,    35,    36,    37,    38,    39,    -1,
      41,    42,    43,    -1,    45,    -1,    47,    48,    -1,    -1,
      51,    52,    53,    54,    -1,    56,    57,    58,    59,    -1,
      61,    62,    63,    64,    65,    -1,    67,    68,    -1,    70,
      71,    72,    73,    74,    75,    76,    -1,    78,    79,    -1,
      81,    82,    -1,    84,    85,    86,    87,    -1,    -1,    90,
      91,    92,    -1,    94,    95,    -1,    97,    98,    99,   100,
     101,   102,    -1,    -1,    -1,    -1,   107,   108,   109,    -1,
      -1,   112,   113,    -1,   115,    -1,    -1,    -1,   119,    -1,
     121,   122,   123,   124,    -1,    -1,    -1,   128,    -1,    -1,
     131,   132,   133,    -1,    -1,    -1,   137,    -1,   139,   140,
      -1,   142,   143,   144,    -1,    -1,   147,    -1,   149,   150,
     151,   152,   153,   154,    -1,   156,   157,   158,   159,   160,
     161,   162,    -1,   164,   165,   166,   167,    -1,   169,    -1,
      -1,    -1,   173,   174,    -1,   176,    -1,   178,    -1,   180,
     181,   182,   183,    -1,   185,    -1,   187,    -1,   189,   190,
      -1,   192,   193,    -1,   195,   196,    -1,    -1,    -1,   200,
     201,   202,   203,   204,    -1,   206,   207,    -1,    -1,   210,
      -1,   212,    -1,    -1,   215,   216,   217,   218,    -1,    -1,
     221,    -1,   223,   224,    -1,   226,   227,    -1,    -1,    -1,
     231,    -1,    -1,   234,   235,    -1,    -1,   238,    -1,   240,
     241,   242,    -1,    -1,    -1,    -1,    -1,   248,   249,    -1,
     251,    -1,   253,    -1,   255,   256,    -1,    -1,   259,    -1,
      -1,    -1,    -1,   264,   265,   266,   267,   268,   269,   270,
     271,   272,   273,   274,   275,   276,    -1,   278,   279,   280,
     281,   282,   283,   284,   285,   286,   287,   288,    -1,    -1,
      -1,   292,   293,   294,   295,   296,    -1,    -1,   299,   300,
     301,   302,    -1,   304,   305,   306,   307,   308,   309,   310,
     311,   312,   313,    -1,   315,   316,   317,    -1,    -1,   320,
     321,   322,   323,   324,   325,   326,   327,   328,    -1,   330,
     331,    -1,   333,   334,   335,    -1,   337,   338,   339,    -1,
     341,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     351,   352,   353,   354,   355,   356,   357,   358,   359,   360,
     361,   362,   363,   364,   365,   366,   367,    -1,   369,   370,
     371,    -1,   373,    -1,   375,   376,   377,   378,    -1,   380,
     381,   382,    -1,    -1,   385,    -1,    -1,    -1,   389,   390,
     391,   392,   393,    -1,    -1,   396,   397,   398,    -1,   400,
     401,    -1,   403,   404,   405,   406,   407,   408,    -1,   410,
     411,   412,    -1,   414,   415,    -1,    -1,   418,   419,   420,
     421,   422,   423,   424,   425,   426,   427,    -1,   429,   430,
      -1,    -1,    -1,   434,   435,   436,   437,    -1,    -1,    -1,
     441,    -1,    -1,    -1,   445,   446,   447,   448,    -1,   450,
     451,   452,   453,   454,    -1,    -1,    -1,    -1,    -1,    -1,
     461,   462,    -1,   464,    -1,    -1,   467,    -1,    -1,   470,
     471,   472,   473,   474,   475,   476,    -1,   478,   479,   480,
     481,   482,   483,   484,   485,   486,   487,   488,   489,   490,
     491,    -1,    -1,   494,   495,   496,    -1,   498,   499,   500,
      -1,   502,   503,   504,   505,    -1,    -1,    -1,    -1,    -1,
     511,   512,    -1,   514,   515,   516,   517,   518,   519,   520,
     521,   522,   523,   524,   525,    -1,   527,   528,    -1,    -1,
     531,    -1,    -1,   534,    -1,   536,    -1,   538,   539,    -1,
      -1,   542,   543,   544,   545,   546,    -1,    -1,   549,   550,
      -1,   552,   553,   554,   555,   556,    -1,    -1,    -1,    -1,
     561,   562,    -1,   564,   565,    -1,    -1,   568,    -1,    -1,
      -1,   572,   573,    -1,    -1,    -1,    -1,   578,   579,    -1,
      -1,   582,   583,    -1,    -1,   586,   587,     5,    -1,     7,
       8,     9,    10,    11,    -1,    -1,    -1,    -1,    -1,    17,
      -1,    -1,    20,    -1,    22,    23,    24,    25,    26,    27,
      28,    -1,    30,    -1,    -1,    33,    34,    35,    36,    37,
      38,    39,    -1,    41,    42,    43,    -1,    45,    -1,    47,
      48,    -1,    -1,    51,    52,    53,    54,    -1,    56,    57,
      58,    59,    -1,    61,    62,    63,    64,    65,    -1,    67,
      68,    -1,    70,    71,    72,    73,    74,    75,    76,    -1,
      78,    79,    -1,    81,    82,    -1,    84,    85,    86,    87,
      -1,    -1,    90,    91,    92,    -1,    94,    95,    -1,    97,
      98,    99,   100,   101,   102,    -1,    -1,    -1,    -1,   107,
     108,   109,    -1,    -1,   112,   113,    -1,   115,    -1,    -1,
      -1,   119,    -1,   121,   122,   123,   124,    -1,    -1,    -1,
     128,    -1,    -1,   131,   132,   133,    -1,    -1,    -1,   137,
      -1,   139,   140,    -1,   142,   143,   144,    -1,    -1,   147,
      -1,   149,   150,   151,   152,   153,   154,    -1,   156,   157,
     158,   159,   160,   161,   162,    -1,   164,   165,   166,   167,
      -1,   169,    -1,    -1,    -1,   173,   174,    -1,   176,    -1,
     178,    -1,   180,   181,   182,   183,    -1,   185,    -1,   187,
      -1,   189,   190,    -1,   192,   193,    -1,   195,   196,    -1,
      -1,    -1,   200,   201,   202,   203,   204,    -1,   206,   207,
      -1,    -1,   210,    -1,   212,    -1,    -1,   215,   216,   217,
     218,    -1,    -1,   221,    -1,   223,   224,    -1,   226,   227,
      -1,    -1,    -1,   231,    -1,    -1,   234,   235,    -1,    -1,
     238,    -1,   240,   241,   242,    -1,    -1,    -1,    -1,    -1,
     248,   249,    -1,   251,    -1,   253,    -1,   255,   256,    -1,
      -1,   259,    -1,    -1,    -1,    -1,   264,   265,   266,   267,
     268,   269,   270,   271,   272,   273,   274,   275,   276,    -1,
     278,   279,   280,   281,   282,   283,   284,   285,   286,   287,
     288,    -1,    -1,    -1,   292,   293,   294,   295,   296,    -1,
      -1,   299,   300,   301,   302,    -1,   304,   305,   306,   307,
     308,   309,   310,   311,   312,   313,    -1,   315,   316,   317,
      -1,    -1,   320,   321,   322,   323,   324,   325,   326,   327,
     328,    -1,   330,   331,    -1,   333,   334,   335,    -1,   337,
     338,   339,    -1,   341,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   351,   352,   353,   354,   355,   356,   357,
     358,   359,   360,   361,   362,   363,   364,   365,   366,   367,
      -1,   369,   370,   371,    -1,   373,    -1,   375,   376,   377,
     378,    -1,   380,   381,   382,    -1,    -1,   385,    -1,    -1,
      -1,   389,   390,   391,   392,   393,    -1,    -1,   396,   397,
     398,    -1,   400,   401,    -1,   403,   404,   405,   406,   407,
     408,    -1,   410,   411,   412,    -1,   414,   415,    -1,    -1,
     418,   419,   420,   421,   422,   423,   424,   425,   426,   427,
      -1,   429,   430,    -1,    -1,    -1,   434,   435,   436,   437,
      -1,    -1,    -1,   441,    -1,    -1,    -1,   445,   446,   447,
     448,    -1,   450,   451,   452,   453,   454,    -1,    -1,    -1,
      -1,    -1,    -1,   461,   462,    -1,   464,    -1,    -1,   467,
      -1,    -1,   470,   471,   472,   473,   474,   475,   476,    -1,
     478,   479,   480,   481,   482,   483,   484,   485,   486,   487,
     488,   489,   490,   491,    -1,    -1,   494,   495,   496,    -1,
     498,   499,   500,    -1,   502,   503,   504,   505,    -1,    -1,
      -1,    -1,    -1,   511,   512,    -1,   514,   515,   516,   517,
     518,   519,   520,   521,   522,   523,   524,   525,    -1,   527,
     528,    -1,    -1,   531,    -1,    -1,   534,    -1,   536,    -1,
     538,   539,    -1,    -1,   542,   543,   544,   545,   546,    -1,
      -1,   549,   550,    -1,   552,   553,   554,   555,   556,    -1,
      -1,    -1,    -1,   561,   562,    -1,   564,   565,    -1,    -1,
     568,    -1,    -1,    -1,   572,   573,    -1,    -1,    -1,    -1,
     578,   579,    -1,    -1,   582,   583,    -1,    -1,   586,   587,
       5,    -1,     7,     8,     9,    10,    11,    -1,    -1,    -1,
      -1,    -1,    17,    -1,    -1,    20,    -1,    22,    23,    24,
      25,    26,    27,    28,    -1,    30,    -1,    -1,    33,    34,
      35,    36,    37,    38,    39,    -1,    41,    42,    43,    -1,
      45,    -1,    47,    48,    -1,    -1,    51,    52,    53,    54,
      -1,    56,    57,    58,    59,    -1,    61,    62,    63,    64,
      65,    -1,    67,    68,    -1,    70,    71,    72,    73,    74,
      75,    76,    -1,    78,    79,    -1,    81,    82,    -1,    84,
      85,    86,    87,    -1,    -1,    90,    91,    92,    -1,    94,
      95,    -1,    97,    98,    99,   100,   101,   102,    -1,    -1,
      -1,    -1,   107,   108,   109,    -1,    -1,   112,   113,    -1,
     115,    -1,    -1,    -1,   119,    -1,   121,   122,   123,   124,
      -1,    -1,    -1,   128,    -1,    -1,   131,   132,   133,    -1,
      -1,    -1,   137,    -1,   139,   140,    -1,   142,   143,   144,
      -1,    -1,   147,    -1,   149,   150,   151,   152,   153,   154,
      -1,   156,   157,   158,   159,   160,   161,   162,    -1,   164,
     165,   166,   167,    -1,   169,    -1,    -1,    -1,   173,   174,
      -1,   176,    -1,   178,    -1,   180,   181,   182,   183,    -1,
     185,    -1,   187,    -1,   189,   190,    -1,   192,   193,    -1,
     195,   196,    -1,    -1,    -1,   200,   201,   202,   203,   204,
      -1,   206,   207,    -1,    -1,   210,    -1,   212,    -1,    -1,
     215,   216,   217,   218,    -1,    -1,   221,    -1,   223,   224,
      -1,   226,   227,    -1,    -1,    -1,   231,    -1,    -1,   234,
     235,    -1,    -1,   238,    -1,   240,   241,   242,    -1,    -1,
      -1,    -1,    -1,   248,   249,    -1,   251,    -1,   253,    -1,
     255,   256,    -1,    -1,   259,    -1,    -1,    -1,    -1,   264,
     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
     275,   276,    -1,   278,   279,   280,   281,   282,   283,   284,
     285,   286,   287,   288,    -1,    -1,    -1,   292,   293,   294,
     295,   296,    -1,    -1,   299,   300,   301,   302,    -1,   304,
     305,   306,   307,   308,   309,   310,   311,   312,   313,    -1,
     315,   316,   317,    -1,    -1,   320,   321,   322,   323,   324,
      -1,   326,   327,   328,    -1,   330,   331,    -1,   333,   334,
     335,    -1,   337,   338,   339,    -1,   341,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   351,   352,   353,   354,
     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
     365,   366,   367,    -1,   369,   370,   371,    -1,   373,    -1,
     375,   376,   377,   378,    -1,   380,   381,   382,    -1,    -1,
     385,    -1,    -1,    -1,   389,   390,   391,   392,   393,    -1,
      -1,   396,   397,   398,    -1,   400,   401,    -1,   403,   404,
     405,   406,   407,   408,    -1,   410,   411,   412,    -1,   414,
     415,    -1,    -1,   418,   419,   420,   421,   422,   423,   424,
     425,   426,   427,    -1,   429,   430,    -1,    -1,    -1,   434,
     435,   436,   437,    -1,    -1,    -1,   441,    -1,    -1,    -1,
     445,   446,   447,   448,    -1,   450,   451,   452,   453,   454,
      -1,    -1,    -1,    -1,    -1,    -1,   461,   462,    -1,   464,
      -1,    -1,   467,    -1,    -1,   470,   471,   472,   473,   474,
     475,   476,    -1,   478,   479,   480,   481,   482,   483,   484,
     485,   486,   487,   488,   489,   490,   491,    -1,    -1,   494,
     495,   496,    -1,   498,   499,   500,    -1,   502,   503,   504,
     505,    -1,    -1,    -1,    -1,    -1,   511,   512,    -1,   514,
     515,   516,   517,   518,   519,   520,   521,   522,   523,   524,
     525,    -1,   527,   528,    -1,    -1,   531,    -1,    -1,   534,
      -1,   536,    -1,   538,   539,    -1,    -1,   542,   543,   544,
     545,   546,    -1,    -1,   549,   550,    -1,   552,   553,   554,
     555,   556,    -1,    -1,    -1,    -1,   561,   562,    -1,   564,
     565,    -1,    -1,   568,    -1,    -1,    -1,   572,   573,    -1,
      -1,    -1,    -1,   578,   579,    -1,    -1,   582,   583,    -1,
      -1,   586,   587,     5,    -1,     7,     8,     9,    10,    11,
      -1,    -1,    -1,    -1,    -1,    17,    -1,    -1,    20,    -1,
      22,    23,    24,    25,    26,    27,    28,    -1,    30,    -1,
      -1,    33,    34,    35,    36,    37,    38,    39,    -1,    41,
      42,    43,    -1,    45,    -1,    47,    48,    -1,    -1,    51,
      52,    53,    54,    -1,    56,    57,    58,    59,    -1,    61,
      62,    63,    64,    65,    -1,    67,    68,    -1,    70,    71,
      72,    73,    74,    75,    76,    -1,    78,    79,    -1,    81,
      82,    -1,    84,    85,    86,    87,    -1,    -1,    90,    91,
      92,    -1,    94,    95,    -1,    97,    98,    99,   100,   101,
     102,    -1,    -1,    -1,    -1,   107,   108,   109,    -1,    -1,
     112,   113,    -1,   115,    -1,    -1,    -1,   119,    -1,   121,
     122,   123,   124,    -1,    -1,    -1,   128,    -1,    -1,   131,
     132,   133,    -1,    -1,    -1,   137,    -1,   139,   140,    -1,
     142,   143,   144,    -1,    -1,   147,    -1,   149,   150,   151,
     152,   153,   154,    -1,   156,   157,   158,   159,   160,   161,
     162,    -1,   164,   165,   166,   167,    -1,   169,    -1,    -1,
      -1,   173,   174,    -1,   176,    -1,   178,    -1,   180,   181,
     182,   183,    -1,   185,    -1,   187,    -1,   189,   190,    -1,
     192,   193,    -1,   195,   196,    -1,    -1,    -1,   200,   201,
     202,   203,   204,    -1,   206,   207,    -1,    -1,   210,    -1,
     212,    -1,    -1,   215,   216,   217,   218,    -1,    -1,   221,
      -1,   223,   224,    -1,   226,   227,    -1,    -1,    -1,   231,
      -1,    -1,   234,   235,    -1,    -1,   238,    -1,   240,   241,
     242,    -1,    -1,    -1,    -1,    -1,   248,   249,    -1,   251,
      -1,   253,    -1,   255,   256,    -1,    -1,   259,    -1,    -1,
      -1,    -1,   264,   265,   266,   267,   268,   269,   270,   271,
     272,   273,   274,   275,   276,    -1,   278,   279,   280,   281,
     282,   283,   284,   285,   286,   287,   288,    -1,    -1,    -1,
     292,   293,   294,   295,   296,    -1,    -1,   299,   300,   301,
     302,    -1,   304,   305,   306,   307,   308,   309,   310,   311,
     312,   313,    -1,   315,   316,   317,    -1,    -1,   320,   321,
     322,   323,   324,    -1,   326,   327,   328,    -1,   330,   331,
      -1,   333,   334,   335,    -1,   337,   338,   339,    -1,   341,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   351,
     352,   353,   354,   355,   356,   357,   358,   359,   360,   361,
     362,   363,   364,   365,   366,   367,    -1,   369,   370,   371,
      -1,   373,    -1,   375,   376,   377,   378,    -1,   380,   381,
     382,    -1,    -1,   385,    -1,    -1,    -1,   389,   390,   391,
     392,   393,    -1,    -1,   396,   397,   398,    -1,   400,   401,
      -1,   403,   404,   405,   406,   407,   408,    -1,   410,   411,
     412,    -1,   414,   415,    -1,    -1,   418,   419,   420,   421,
     422,   423,   424,   425,   426,   427,    -1,   429,   430,    -1,
      -1,    -1,   434,   435,   436,   437,    -1,    -1,    -1,   441,
      -1,    -1,    -1,   445,   446,   447,   448,    -1,   450,   451,
     452,   453,   454,    -1,    -1,    -1,    -1,    -1,    -1,   461,
     462,    -1,   464,    -1,    -1,   467,    -1,    -1,   470,   471,
     472,   473,   474,   475,   476,    -1,   478,   479,   480,   481,
     482,   483,   484,   485,   486,   487,   488,   489,   490,   491,
      -1,    -1,   494,   495,   496,    -1,   498,   499,   500,    -1,
     502,   503,   504,   505,    -1,    -1,    -1,    -1,    -1,   511,
     512,    -1,   514,   515,   516,   517,   518,   519,   520,   521,
     522,   523,   524,   525,    -1,   527,   528,    -1,    -1,   531,
      -1,    -1,   534,    -1,   536,    -1,   538,   539,    -1,    -1,
     542,   543,   544,   545,   546,    -1,    -1,   549,   550,    -1,
     552,   553,   554,   555,   556,    -1,    -1,    -1,    -1,   561,
     562,    -1,   564,   565,    -1,    -1,   568,    -1,    -1,    -1,
     572,   573,    -1,    -1,    -1,    -1,   578,   579,    -1,    -1,
     582,   583,    -1,    -1,   586,   587,     5,    -1,     7,     8,
       9,    10,    11,    -1,    -1,    -1,    -1,    -1,    17,    -1,
      -1,    20,    -1,    22,    23,    24,    25,    26,    27,    28,
      -1,    30,    -1,    -1,    33,    34,    35,    36,    37,    38,
      39,    -1,    41,    42,    43,    -1,    45,    -1,    47,    48,
      -1,    -1,    51,    52,    53,    54,    -1,    56,    57,    58,
      59,    -1,    61,    62,    63,    64,    65,    -1,    67,    68,
      -1,    70,    71,    72,    73,    74,    75,    76,    -1,    78,
      79,    -1,    81,    82,    -1,    84,    85,    86,    87,    -1,
      -1,    90,    91,    92,    -1,    94,    95,    -1,    97,    98,
      99,   100,   101,   102,    -1,    -1,    -1,    -1,   107,   108,
     109,    -1,    -1,   112,   113,    -1,   115,    -1,    -1,    -1,
     119,    -1,   121,   122,   123,   124,    -1,    -1,    -1,   128,
      -1,    -1,   131,   132,   133,    -1,    -1,    -1,   137,    -1,
     139,   140,    -1,   142,   143,   144,    -1,    -1,   147,    -1,
     149,   150,   151,   152,   153,   154,    -1,   156,   157,   158,
     159,   160,   161,   162,    -1,   164,   165,   166,   167,    -1,
     169,    -1,    -1,    -1,   173,   174,    -1,   176,    -1,   178,
      -1,   180,   181,   182,   183,    -1,   185,    -1,   187,    -1,
     189,   190,    -1,   192,   193,    -1,   195,   196,    -1,    -1,
      -1,   200,   201,   202,   203,   204,    -1,   206,   207,    -1,
      -1,   210,    -1,   212,    -1,    -1,   215,   216,   217,   218,
      -1,    -1,   221,    -1,   223,   224,    -1,   226,   227,    -1,
      -1,    -1,   231,    -1,    -1,   234,   235,    -1,    -1,   238,
      -1,   240,   241,   242,    -1,    -1,    -1,    -1,    -1,   248,
     249,    -1,   251,    -1,   253,    -1,   255,   256,    -1,    -1,
     259,    -1,    -1,    -1,    -1,   264,   265,   266,   267,   268,
     269,   270,   271,   272,   273,   274,   275,   276,    -1,   278,
     279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
      -1,    -1,    -1,   292,   293,   294,   295,   296,    -1,    -1,
     299,   300,   301,   302,    -1,   304,   305,   306,   307,   308,
     309,   310,   311,   312,   313,    -1,   315,   316,   317,    -1,
      -1,   320,   321,   322,   323,   324,    -1,   326,   327,   328,
      -1,   330,   331,    -1,   333,   334,   335,    -1,   337,   338,
     339,    -1,   341,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   351,   352,   353,   354,   355,   356,   357,   358,
     359,   360,   361,   362,   363,   364,   365,   366,   367,    -1,
     369,   370,   371,    -1,   373,    -1,   375,   376,   377,   378,
      -1,   380,   381,   382,    -1,    -1,   385,    -1,    -1,    -1,
     389,   390,   391,   392,   393,    -1,    -1,   396,   397,   398,
      -1,   400,   401,    -1,   403,   404,   405,   406,   407,   408,
      -1,   410,   411,   412,    -1,   414,   415,    -1,    -1,   418,
     419,   420,   421,   422,   423,   424,   425,   426,   427,    -1,
     429,   430,    -1,    -1,    -1,   434,   435,   436,   437,    -1,
      -1,    -1,   441,    -1,    -1,    -1,   445,   446,   447,   448,
      -1,   450,   451,   452,   453,   454,    -1,    -1,    -1,    -1,
      -1,    -1,   461,   462,    -1,   464,    -1,    -1,   467,    -1,
      -1,   470,   471,   472,   473,   474,   475,   476,    -1,   478,
     479,   480,   481,   482,   483,   484,   485,   486,   487,   488,
     489,   490,   491,    -1,    -1,   494,   495,   496,    -1,   498,
     499,   500,    -1,   502,   503,   504,   505,    -1,    -1,    -1,
      -1,    -1,   511,   512,    -1,   514,   515,   516,   517,   518,
     519,   520,   521,   522,   523,   524,   525,    -1,   527,   528,
      -1,    -1,   531,    -1,    -1,   534,    -1,   536,    -1,   538,
     539,    -1,    -1,   542,   543,   544,   545,   546,    -1,    -1,
     549,   550,    -1,   552,   553,   554,   555,   556,    -1,    -1,
      -1,    -1,   561,   562,    -1,   564,   565,    -1,    -1,   568,
      -1,    -1,    -1,   572,   573,    -1,    -1,    -1,    -1,   578,
     579,    -1,    -1,   582,   583,    -1,    -1,   586,   587,     5,
      -1,     7,     8,     9,    10,    11,    -1,    -1,    -1,    -1,
      -1,    17,    -1,    -1,    20,    -1,    22,    23,    24,    25,
      26,    27,    28,    -1,    30,    -1,    -1,    33,    34,    35,
      36,    37,    38,    39,    -1,    41,    42,    43,    -1,    45,
      -1,    47,    48,    -1,    -1,    51,    52,    53,    54,    -1,
      56,    57,    58,    59,    -1,    61,    62,    63,    64,    65,
      -1,    67,    68,    -1,    70,    71,    72,    73,    74,    75,
      76,    -1,    78,    79,    -1,    81,    82,    -1,    84,    85,
      86,    87,    -1,    -1,    90,    91,    92,    -1,    94,    95,
      -1,    97,    98,    99,   100,   101,   102,    -1,    -1,    -1,
      -1,   107,   108,   109,    -1,    -1,   112,   113,    -1,   115,
      -1,    -1,    -1,   119,    -1,   121,   122,   123,   124,    -1,
      -1,    -1,   128,    -1,    -1,   131,   132,   133,    -1,    -1,
      -1,   137,    -1,   139,   140,    -1,   142,   143,   144,    -1,
      -1,   147,    -1,   149,   150,   151,   152,   153,   154,    -1,
     156,   157,   158,   159,   160,   161,   162,    -1,   164,   165,
     166,   167,    -1,   169,    -1,    -1,    -1,   173,   174,    -1,
     176,    -1,   178,    -1,   180,   181,   182,   183,    -1,   185,
      -1,   187,    -1,   189,   190,    -1,   192,   193,    -1,   195,
     196,    -1,    -1,    -1,   200,   201,   202,   203,   204,    -1,
     206,   207,    -1,    -1,   210,    -1,   212,    -1,    -1,   215,
     216,   217,   218,    -1,    -1,   221,    -1,   223,   224,    -1,
     226,   227,    -1,    -1,    -1,   231,    -1,    -1,   234,   235,
      -1,    -1,   238,    -1,   240,   241,   242,    -1,    -1,    -1,
      -1,    -1,   248,   249,    -1,   251,    -1,   253,    -1,   255,
     256,    -1,    -1,   259,    -1,    -1,    -1,    -1,   264,   265,
     266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
     276,    -1,   278,   279,   280,   281,   282,   283,   284,   285,
     286,   287,   288,    -1,    -1,    -1,   292,   293,   294,   295,
     296,    -1,    -1,   299,   300,   301,   302,    -1,   304,   305,
     306,   307,   308,   309,   310,   311,   312,   313,    -1,   315,
     316,   317,    -1,    -1,   320,   321,   322,   323,   324,    -1,
     326,   327,   328,    -1,   330,   331,    -1,   333,   334,   335,
      -1,   337,   338,   339,    -1,   341,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   351,   352,   353,   354,   355,
     356,   357,   358,   359,   360,   361,   362,   363,   364,   365,
     366,   367,    -1,   369,   370,   371,    -1,   373,    -1,   375,
     376,   377,   378,    -1,   380,   381,   382,    -1,    -1,   385,
      -1,    -1,    -1,   389,   390,   391,   392,   393,    -1,    -1,
     396,   397,   398,    -1,   400,   401,    -1,   403,   404,   405,
     406,   407,   408,    -1,   410,   411,   412,    -1,   414,   415,
      -1,    -1,   418,   419,   420,   421,   422,   423,   424,   425,
     426,   427,    -1,   429,   430,    -1,    -1,    -1,   434,   435,
     436,   437,    -1,    -1,    -1,   441,    -1,    -1,    -1,   445,
     446,   447,   448,    -1,   450,   451,   452,   453,   454,    -1,
      -1,    -1,    -1,    -1,    -1,   461,   462,    -1,   464,    -1,
      -1,   467,    -1,    -1,   470,   471,   472,   473,   474,   475,
     476,    -1,   478,   479,   480,   481,   482,   483,   484,   485,
     486,   487,   488,   489,   490,   491,    -1,    -1,   494,   495,
     496,    -1,   498,   499,   500,    -1,   502,   503,   504,   505,
      -1,    -1,    -1,    -1,    -1,   511,   512,    -1,   514,   515,
     516,   517,   518,   519,   520,   521,   522,   523,   524,   525,
      -1,   527,   528,    -1,    -1,   531,    -1,    -1,   534,    -1,
     536,    -1,   538,   539,    -1,    -1,   542,   543,   544,   545,
     546,    -1,    -1,   549,   550,    -1,   552,   553,   554,   555,
     556,    -1,    -1,    -1,    -1,   561,   562,    -1,   564,   565,
      -1,    -1,   568,    -1,    -1,    -1,   572,   573,    -1,    -1,
      -1,    -1,   578,   579,    -1,    -1,   582,   583,    -1,    -1,
     586,   587,     5,    -1,     7,     8,     9,    10,    11,    -1,
      -1,    -1,    -1,    -1,    17,    -1,    -1,    20,    -1,    22,
      23,    24,    25,    26,    27,    28,    -1,    30,    -1,    -1,
      -1,    34,    -1,    -1,    -1,    38,    -1,    -1,    41,    42,
      43,    -1,    45,    -1,    47,    48,    -1,    -1,    51,    -1,
      -1,    54,    -1,    56,    57,    -1,    59,    -1,    61,    62,
      63,    64,    65,    -1,    67,    68,    -1,    70,    71,    72,
      73,    74,    75,    76,    -1,    78,    79,    80,    81,    82,
      -1,    84,    -1,    -1,    87,    -1,    -1,    90,    -1,    -1,
      -1,    -1,    -1,    -1,    97,    98,    99,    -1,    -1,   102,
      -1,    -1,    -1,    -1,   107,   108,    -1,    -1,    -1,    -1,
     113,    -1,   115,    -1,    -1,    -1,   119,    -1,   121,   122,
     123,   124,    -1,    -1,    -1,   128,    -1,    -1,   131,   132,
     133,    -1,    -1,    -1,   137,    -1,   139,   140,    -1,   142,
     143,   144,    -1,    -1,   147,    -1,   149,   150,   151,   152,
     153,    -1,    -1,   156,   157,   158,    -1,    -1,   161,   162,
      -1,   164,   165,   166,    -1,    -1,   169,    -1,    -1,    -1,
     173,   174,    -1,   176,   177,   178,    -1,   180,   181,   182,
     183,    -1,   185,    -1,    -1,    -1,   189,   190,    -1,   192,
      -1,    -1,   195,   196,    -1,    -1,    -1,   200,   201,   202,
     203,    -1,    -1,   206,   207,   208,    -1,   210,    -1,   212,
      -1,    -1,    -1,   216,   217,    -1,    -1,    -1,   221,    -1,
     223,   224,    -1,   226,   227,    -1,    -1,    -1,   231,   232,
      -1,   234,   235,    -1,    -1,   238,    -1,    -1,   241,   242,
      -1,   244,    -1,    -1,    -1,   248,   249,    -1,   251,    -1,
     253,    -1,   255,   256,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   264,   265,   266,   267,   268,   269,   270,   271,   272,
     273,   274,   275,   276,    -1,   278,   279,    -1,   281,   282,
     283,   284,    -1,   286,   287,   288,    -1,    -1,    -1,   292,
     293,   294,   295,   296,    -1,    -1,   299,   300,    -1,   302,
      -1,   304,    -1,   306,   307,   308,   309,   310,   311,   312,
     313,    -1,    -1,   316,   317,    -1,    -1,   320,   321,   322,
     323,    -1,    -1,    -1,   327,   328,    -1,    -1,    -1,    -1,
     333,   334,   335,    -1,   337,   338,   339,    -1,   341,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   351,   352,
     353,    -1,   355,   356,   357,   358,   359,   360,   361,   362,
     363,   364,   365,   366,    -1,    -1,   369,   370,   371,    -1,
     373,    -1,   375,   376,   377,   378,    -1,   380,   381,   382,
      -1,    -1,   385,    -1,    -1,    -1,   389,   390,   391,   392,
     393,    -1,    -1,   396,   397,   398,    -1,   400,   401,    -1,
     403,   404,   405,    -1,    -1,   408,    -1,   410,   411,   412,
      -1,   414,   415,    -1,    -1,    -1,   419,   420,   421,   422,
     423,   424,   425,   426,   427,    -1,   429,   430,   431,    -1,
      -1,   434,   435,   436,   437,    -1,    -1,    -1,   441,    -1,
      -1,    -1,   445,   446,   447,   448,    -1,   450,   451,   452,
     453,   454,   455,    -1,    -1,    -1,    -1,    -1,   461,   462,
      -1,   464,    -1,    -1,   467,    -1,    -1,   470,   471,   472,
      -1,    -1,   475,   476,    -1,   478,   479,   480,   481,   482,
      -1,    -1,   485,   486,   487,   488,    -1,   490,   491,    -1,
      -1,   494,   495,   496,    -1,    -1,   499,   500,    -1,   502,
     503,   504,   505,    -1,    -1,    -1,    -1,    -1,   511,   512,
      -1,    -1,    -1,   516,   517,   518,   519,    -1,   521,   522,
      -1,   524,   525,    -1,   527,   528,    -1,    -1,   531,    -1,
      -1,   534,    -1,   536,    -1,   538,   539,    -1,    -1,    -1,
      -1,    -1,    -1,   546,    -1,    -1,   549,    -1,    -1,    -1,
     553,   554,   555,   556,    -1,    -1,    -1,    -1,   561,   562,
      -1,   564,   565,    -1,    -1,   568,    -1,    -1,     5,    -1,
       7,     8,     9,    10,    11,    -1,    -1,    -1,    -1,    -1,
      17,    -1,    -1,    20,   587,    22,    23,    24,    25,    26,
      27,    28,    -1,    30,    -1,    -1,    -1,    34,    -1,    -1,
      -1,    38,    -1,    -1,    41,    42,    43,    -1,    45,    -1,
      47,    48,    -1,    -1,    51,    -1,    -1,    54,    -1,    56,
      57,    -1,    59,    -1,    61,    62,    63,    64,    65,    -1,
      67,    68,    -1,    70,    71,    72,    73,    74,    75,    76,
      -1,    78,    79,    80,    81,    82,    -1,    84,    -1,    -1,
      87,    -1,    -1,    90,    -1,    -1,    -1,    -1,    -1,    -1,
      97,    98,    99,    -1,    -1,   102,    -1,    -1,    -1,    -1,
     107,   108,    -1,    -1,    -1,    -1,   113,    -1,   115,    -1,
      -1,    -1,   119,    -1,   121,   122,   123,   124,    -1,    -1,
      -1,   128,    -1,    -1,   131,   132,   133,    -1,    -1,    -1,
     137,    -1,   139,   140,    -1,   142,   143,   144,    -1,    -1,
     147,    -1,   149,   150,   151,   152,   153,    -1,    -1,   156,
     157,   158,    -1,    -1,   161,   162,    -1,   164,   165,   166,
      -1,    -1,   169,    -1,    -1,    -1,   173,   174,    -1,   176,
     177,   178,    -1,   180,   181,   182,   183,    -1,   185,    -1,
      -1,    -1,   189,   190,    -1,   192,    -1,    -1,   195,   196,
      -1,    -1,    -1,   200,   201,   202,   203,    -1,    -1,   206,
     207,   208,    -1,   210,    -1,   212,    -1,    -1,    -1,   216,
     217,    -1,    -1,    -1,   221,    -1,   223,   224,    -1,   226,
     227,    -1,    -1,    -1,   231,   232,    -1,   234,   235,    -1,
      -1,   238,    -1,    -1,   241,   242,    -1,    -1,    -1,    -1,
      -1,   248,   249,    -1,   251,    -1,   253,    -1,   255,   256,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   264,   265,   266,
     267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
      -1,   278,   279,    -1,   281,   282,   283,   284,    -1,   286,
     287,   288,    -1,    -1,    -1,   292,   293,   294,   295,   296,
      -1,    -1,   299,   300,    -1,   302,    -1,   304,    -1,   306,
     307,   308,   309,   310,   311,   312,   313,    -1,    -1,   316,
     317,    -1,    -1,   320,   321,   322,   323,    -1,    -1,    -1,
     327,   328,    -1,    -1,    -1,    -1,   333,   334,   335,    -1,
     337,   338,   339,    -1,   341,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   351,   352,   353,    -1,   355,   356,
     357,   358,   359,   360,   361,   362,   363,   364,   365,   366,
      -1,    -1,   369,   370,   371,    -1,   373,    -1,   375,   376,
     377,   378,    -1,   380,   381,   382,    -1,    -1,   385,    -1,
      -1,    -1,   389,   390,   391,   392,   393,    -1,    -1,   396,
     397,   398,    -1,   400,   401,    -1,   403,   404,   405,    -1,
      -1,   408,    -1,   410,   411,   412,    -1,   414,   415,    -1,
      -1,    -1,   419,   420,   421,   422,   423,   424,   425,   426,
     427,    -1,   429,   430,    -1,    -1,    -1,   434,   435,   436,
     437,    -1,    -1,    -1,   441,    -1,    -1,    -1,   445,   446,
     447,   448,    -1,   450,   451,   452,   453,   454,   455,    -1,
      -1,    -1,    -1,    -1,   461,   462,    -1,   464,    -1,    -1,
     467,    -1,    -1,   470,   471,   472,    -1,    -1,   475,   476,
      -1,   478,   479,   480,   481,   482,    -1,    -1,   485,   486,
     487,   488,    -1,   490,   491,    -1,    -1,   494,   495,   496,
      -1,    -1,   499,   500,    -1,   502,   503,   504,   505,    -1,
      -1,    -1,    -1,    -1,   511,   512,    -1,    -1,    -1,   516,
     517,   518,   519,    -1,   521,   522,    -1,   524,   525,    -1,
     527,   528,    -1,    -1,   531,    -1,    -1,   534,    -1,   536,
      -1,   538,   539,    -1,    -1,    -1,    -1,    -1,    -1,   546,
      -1,    -1,   549,    -1,    -1,    -1,   553,   554,   555,   556,
      -1,    -1,    -1,    -1,   561,   562,    -1,   564,   565,    -1,
      -1,   568,    -1,    -1,     5,    -1,     7,     8,     9,    10,
      11,    -1,    -1,    -1,    -1,    -1,    17,    -1,    -1,    20,
     587,    22,    23,    24,    25,    26,    27,    28,    -1,    30,
      -1,    -1,    -1,    34,    -1,    -1,    -1,    38,    -1,    -1,
      41,    42,    43,    -1,    45,    -1,    47,    48,    -1,    -1,
      51,    -1,    -1,    54,    -1,    56,    57,    -1,    59,    -1,
      61,    62,    63,    64,    65,    -1,    67,    68,    -1,    70,
      71,    72,    73,    74,    75,    76,    -1,    78,    79,    -1,
      81,    82,    -1,    84,    -1,    -1,    87,    -1,    -1,    90,
      -1,    -1,    -1,    -1,    -1,    -1,    97,    98,    99,    -1,
      -1,   102,    -1,    -1,    -1,    -1,   107,   108,    -1,    -1,
      -1,    -1,   113,    -1,   115,    -1,    -1,    -1,   119,    -1,
     121,   122,   123,   124,    -1,    -1,    -1,   128,    -1,    -1,
     131,   132,   133,    -1,    -1,    -1,   137,    -1,   139,   140,
      -1,   142,   143,   144,    -1,    -1,   147,    -1,   149,   150,
     151,   152,   153,    -1,    -1,   156,   157,   158,    -1,    -1,
     161,   162,    -1,   164,   165,   166,    -1,    -1,   169,    -1,
      -1,    -1,   173,   174,    -1,   176,    -1,   178,    -1,   180,
     181,   182,   183,    -1,   185,    -1,    -1,    -1,   189,   190,
      -1,   192,    -1,    -1,   195,   196,    -1,    -1,    -1,   200,
     201,   202,   203,    -1,    -1,   206,   207,    -1,    -1,   210,
      -1,   212,    -1,    -1,    -1,   216,   217,    -1,    -1,    -1,
     221,    -1,   223,   224,    -1,   226,   227,    -1,    -1,    -1,
     231,    -1,    -1,   234,   235,    -1,    -1,   238,    -1,    -1,
     241,   242,    -1,    -1,    -1,    -1,    -1,   248,   249,    -1,
     251,    -1,   253,    -1,   255,   256,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   264,   265,   266,   267,   268,   269,   270,
     271,   272,   273,   274,   275,   276,    -1,   278,   279,    -1,
     281,   282,   283,   284,    -1,   286,   287,   288,    -1,    -1,
      -1,   292,   293,   294,   295,   296,    -1,    -1,   299,   300,
      -1,   302,    -1,   304,    -1,   306,   307,   308,   309,   310,
     311,   312,   313,    -1,    -1,   316,   317,    -1,    -1,   320,
     321,   322,   323,    -1,    -1,    -1,   327,   328,    -1,    -1,
      -1,    -1,   333,   334,   335,    -1,   337,   338,   339,    -1,
     341,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     351,   352,   353,    -1,   355,   356,   357,   358,   359,   360,
     361,   362,   363,   364,   365,   366,    -1,    -1,   369,   370,
     371,    -1,   373,    -1,   375,   376,   377,   378,    -1,   380,
     381,   382,    -1,    -1,   385,    -1,    -1,    -1,   389,   390,
     391,   392,   393,    -1,    -1,   396,   397,   398,    -1,   400,
     401,    -1,   403,   404,   405,    -1,    -1,   408,    -1,   410,
     411,   412,    -1,   414,   415,    -1,    -1,    -1,   419,   420,
     421,   422,   423,   424,   425,   426,   427,    -1,   429,   430,
     431,    -1,    -1,   434,   435,   436,   437,    -1,    -1,    -1,
     441,    -1,    -1,    -1,   445,   446,   447,   448,    -1,   450,
     451,   452,   453,   454,    -1,    -1,    -1,    -1,    -1,    -1,
     461,   462,    -1,   464,    -1,    -1,   467,    -1,    -1,   470,
     471,   472,    -1,    -1,   475,   476,    -1,   478,   479,   480,
     481,   482,    -1,    -1,   485,   486,   487,   488,    -1,   490,
     491,    -1,    -1,   494,   495,   496,    -1,    -1,   499,   500,
      -1,   502,   503,   504,   505,    -1,    -1,    -1,    -1,    -1,
     511,   512,    -1,    -1,    -1,   516,   517,   518,   519,    -1,
     521,   522,    -1,   524,   525,    -1,   527,   528,    -1,    -1,
     531,    -1,    -1,   534,    -1,   536,    -1,   538,   539,    -1,
      -1,    -1,    -1,    -1,    -1,   546,    -1,    -1,   549,    -1,
      -1,    -1,   553,   554,   555,   556,    -1,    -1,    -1,    -1,
     561,   562,    -1,   564,   565,    -1,    -1,   568,    -1,    -1,
       5,    -1,     7,     8,     9,    10,    11,    -1,    -1,   580,
      -1,    -1,    17,    -1,    -1,    20,   587,    22,    23,    24,
      25,    26,    27,    28,    -1,    30,    -1,    -1,    -1,    34,
      -1,    -1,    -1,    38,    -1,    -1,    41,    42,    43,    -1,
      45,    -1,    47,    48,    -1,    -1,    51,    -1,    -1,    54,
      -1,    56,    57,    -1,    59,    -1,    61,    62,    63,    64,
      65,    -1,    67,    68,    -1,    70,    71,    72,    73,    74,
      75,    76,    -1,    78,    79,    -1,    81,    82,    -1,    84,
      -1,    -1,    87,    -1,    -1,    90,    -1,    -1,    -1,    -1,
      -1,    -1,    97,    98,    99,    -1,    -1,   102,    -1,    -1,
      -1,    -1,   107,   108,    -1,    -1,    -1,    -1,   113,    -1,
     115,    -1,    -1,    -1,   119,    -1,   121,   122,   123,   124,
      -1,    -1,    -1,   128,    -1,    -1,   131,   132,   133,    -1,
      -1,    -1,   137,    -1,   139,   140,    -1,   142,   143,   144,
      -1,    -1,   147,    -1,   149,   150,   151,   152,   153,    -1,
      -1,   156,   157,   158,    -1,    -1,   161,   162,    -1,   164,
     165,   166,    -1,    -1,   169,    -1,    -1,    -1,   173,   174,
      -1,   176,    -1,   178,    -1,   180,   181,   182,   183,    -1,
     185,    -1,    -1,    -1,   189,   190,    -1,   192,    -1,    -1,
     195,   196,    -1,    -1,    -1,   200,   201,   202,   203,    -1,
      -1,   206,   207,    -1,    -1,   210,    -1,   212,    -1,    -1,
      -1,   216,   217,    -1,    -1,    -1,   221,    -1,   223,   224,
      -1,   226,   227,    -1,    -1,    -1,   231,    -1,    -1,   234,
     235,    -1,    -1,   238,    -1,    -1,   241,   242,    -1,    -1,
      -1,    -1,    -1,   248,   249,    -1,   251,    -1,   253,    -1,
     255,   256,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   264,
     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
     275,   276,    -1,   278,   279,    -1,   281,   282,   283,   284,
      -1,   286,   287,   288,    -1,    -1,    -1,   292,   293,   294,
     295,   296,    -1,    -1,   299,   300,    -1,   302,    -1,   304,
      -1,   306,   307,   308,   309,   310,   311,   312,   313,    -1,
      -1,   316,   317,    -1,    -1,   320,   321,   322,   323,    -1,
      -1,    -1,   327,   328,    -1,    -1,    -1,    -1,   333,   334,
     335,    -1,   337,   338,   339,    -1,   341,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   351,   352,   353,    -1,
     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
     365,   366,    -1,    -1,   369,   370,   371,    -1,   373,    -1,
     375,   376,   377,   378,    -1,   380,   381,   382,    -1,    -1,
     385,    -1,    -1,    -1,   389,   390,   391,   392,   393,    -1,
      -1,   396,   397,   398,    -1,   400,   401,    -1,   403,   404,
     405,    -1,    -1,   408,    -1,   410,   411,   412,    -1,   414,
     415,    -1,    -1,    -1,   419,   420,   421,   422,   423,   424,
     425,   426,   427,    -1,   429,   430,    -1,    -1,    -1,   434,
     435,   436,   437,    -1,    -1,    -1,   441,    -1,    -1,    -1,
     445,   446,   447,   448,    -1,   450,   451,   452,   453,   454,
      -1,    -1,    -1,    -1,    -1,    -1,   461,   462,    -1,   464,
      -1,    -1,   467,    -1,    -1,   470,   471,   472,    -1,    -1,
     475,   476,    -1,   478,   479,   480,   481,   482,    -1,    -1,
     485,   486,   487,   488,    -1,   490,   491,    -1,    -1,   494,
     495,   496,    -1,    -1,   499,   500,    -1,   502,   503,   504,
     505,    -1,    -1,    -1,    -1,    -1,   511,   512,    -1,    -1,
      -1,   516,   517,   518,   519,    -1,   521,   522,    -1,   524,
     525,    -1,   527,   528,    -1,    -1,   531,    -1,    -1,   534,
      -1,   536,    -1,   538,   539,    -1,    -1,    -1,    -1,    -1,
      -1,   546,    -1,    -1,   549,    -1,    -1,    -1,   553,   554,
     555,   556,    -1,    -1,    -1,    -1,   561,   562,    -1,   564,
     565,    -1,    -1,   568,    -1,    -1,    -1,    -1,     5,    -1,
       7,     8,     9,    10,    11,   580,    -1,    -1,    -1,    -1,
      17,   586,   587,    20,    -1,    22,    23,    24,    25,    26,
      27,    28,    -1,    30,    -1,    -1,    -1,    34,    -1,    -1,
      -1,    38,    -1,    -1,    41,    42,    43,    -1,    45,    -1,
      47,    48,    -1,    -1,    51,    -1,    -1,    54,    -1,    56,
      57,    -1,    59,    -1,    61,    62,    63,    64,    65,    -1,
      67,    68,    -1,    70,    71,    72,    73,    74,    75,    76,
      -1,    78,    79,    -1,    81,    82,    -1,    84,    -1,    -1,
      87,    -1,    -1,    90,    -1,    -1,    -1,    -1,    -1,    -1,
      97,    98,    99,    -1,    -1,   102,    -1,    -1,    -1,    -1,
     107,   108,    -1,    -1,    -1,    -1,   113,    -1,   115,    -1,
      -1,    -1,   119,    -1,   121,   122,   123,   124,    -1,    -1,
      -1,   128,    -1,    -1,   131,   132,   133,    -1,    -1,    -1,
     137,    -1,   139,   140,    -1,   142,   143,   144,    -1,    -1,
     147,    -1,   149,   150,   151,   152,   153,    -1,    -1,   156,
     157,   158,    -1,    -1,   161,   162,    -1,   164,   165,   166,
      -1,    -1,   169,    -1,    -1,    -1,   173,   174,    -1,   176,
      -1,   178,    -1,   180,   181,   182,   183,    -1,   185,    -1,
      -1,    -1,   189,   190,    -1,   192,    -1,    -1,   195,   196,
      -1,    -1,    -1,   200,   201,   202,   203,    -1,    -1,   206,
     207,    -1,    -1,   210,    -1,   212,    -1,    -1,    -1,   216,
     217,    -1,    -1,    -1,   221,    -1,   223,   224,    -1,   226,
     227,    -1,    -1,    -1,   231,    -1,    -1,   234,   235,    -1,
      -1,   238,    -1,    -1,   241,   242,    -1,    -1,    -1,    -1,
      -1,   248,   249,    -1,   251,    -1,   253,    -1,   255,   256,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   264,   265,   266,
     267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
      -1,   278,   279,    -1,   281,   282,   283,   284,    -1,   286,
     287,   288,    -1,    -1,    -1,   292,   293,   294,   295,   296,
      -1,    -1,   299,   300,    -1,   302,    -1,   304,    -1,   306,
     307,   308,   309,   310,   311,   312,   313,    -1,    -1,   316,
     317,    -1,    -1,   320,   321,   322,   323,    -1,    -1,    -1,
     327,   328,    -1,    -1,    -1,    -1,   333,   334,   335,    -1,
     337,   338,   339,    -1,   341,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   351,   352,   353,    -1,   355,   356,
     357,   358,   359,   360,   361,   362,   363,   364,   365,   366,
      -1,    -1,   369,   370,   371,    -1,   373,    -1,   375,   376,
     377,   378,    -1,   380,   381,   382,    -1,    -1,   385,    -1,
      -1,    -1,   389,   390,   391,   392,   393,    -1,    -1,   396,
     397,   398,    -1,   400,   401,    -1,   403,   404,   405,    -1,
      -1,   408,    -1,   410,   411,   412,    -1,   414,   415,    -1,
      -1,    -1,   419,   420,   421,   422,   423,   424,   425,   426,
     427,    -1,   429,   430,    -1,    -1,    -1,   434,   435,   436,
     437,    -1,    -1,    -1,   441,    -1,    -1,    -1,   445,   446,
     447,   448,    -1,   450,   451,   452,   453,   454,    -1,    -1,
      -1,    -1,    -1,    -1,   461,   462,    -1,   464,    -1,    -1,
     467,    -1,    -1,   470,   471,   472,    -1,    -1,   475,   476,
      -1,   478,   479,   480,   481,   482,    -1,    -1,   485,   486,
     487,   488,    -1,   490,   491,    -1,    -1,   494,   495,   496,
      -1,    -1,   499,   500,    -1,   502,   503,   504,   505,    -1,
      -1,    -1,    -1,    -1,   511,   512,    -1,    -1,    -1,   516,
     517,   518,   519,    -1,   521,   522,    -1,   524,   525,    -1,
     527,   528,    -1,    -1,   531,    -1,    -1,   534,    -1,   536,
      -1,   538,   539,    -1,    -1,    -1,    -1,    -1,    -1,   546,
      -1,    -1,   549,    -1,    -1,    -1,   553,   554,   555,   556,
      -1,    -1,    -1,    -1,   561,   562,    -1,   564,   565,    -1,
      -1,   568,    -1,    -1,     5,    -1,     7,     8,     9,    10,
      11,    -1,   579,    -1,    -1,    -1,    17,    -1,    -1,    20,
     587,    22,    23,    24,    25,    26,    27,    28,    -1,    30,
      -1,    -1,    -1,    34,    -1,    -1,    -1,    38,    -1,    -1,
      41,    42,    43,    -1,    45,    -1,    47,    48,    -1,    -1,
      51,    -1,    -1,    54,    -1,    56,    57,    -1,    59,    -1,
      61,    62,    63,    64,    65,    -1,    67,    68,    -1,    70,
      71,    72,    73,    74,    75,    76,    -1,    78,    79,    -1,
      81,    82,    -1,    84,    -1,    -1,    87,    -1,    -1,    90,
      -1,    -1,    -1,    -1,    -1,    -1,    97,    98,    99,    -1,
      -1,   102,    -1,    -1,    -1,    -1,   107,   108,    -1,    -1,
      -1,    -1,   113,    -1,   115,    -1,    -1,    -1,   119,    -1,
     121,   122,   123,   124,    -1,    -1,    -1,   128,    -1,    -1,
     131,   132,   133,    -1,    -1,    -1,   137,    -1,   139,   140,
      -1,   142,   143,   144,    -1,    -1,   147,    -1,   149,   150,
     151,   152,   153,    -1,    -1,   156,   157,   158,    -1,    -1,
     161,   162,    -1,   164,   165,   166,    -1,    -1,   169,    -1,
      -1,    -1,   173,   174,    -1,   176,    -1,   178,    -1,   180,
     181,   182,   183,    -1,   185,    -1,    -1,    -1,   189,   190,
      -1,   192,    -1,    -1,   195,   196,    -1,    -1,    -1,   200,
     201,   202,   203,    -1,    -1,   206,   207,    -1,    -1,   210,
      -1,   212,    -1,    -1,    -1,   216,   217,    -1,   219,    -1,
     221,    -1,   223,   224,    -1,   226,   227,    -1,    -1,    -1,
     231,    -1,    -1,   234,   235,    -1,    -1,   238,    -1,    -1,
     241,   242,    -1,    -1,    -1,    -1,    -1,   248,   249,    -1,
     251,    -1,   253,    -1,   255,   256,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   264,   265,   266,   267,   268,   269,   270,
     271,   272,   273,   274,   275,   276,    -1,   278,   279,    -1,
     281,   282,   283,   284,    -1,   286,   287,   288,    -1,    -1,
      -1,   292,   293,   294,   295,   296,    -1,    -1,   299,   300,
      -1,   302,    -1,   304,    -1,   306,   307,   308,   309,   310,
     311,   312,   313,    -1,    -1,   316,   317,    -1,    -1,   320,
     321,   322,   323,    -1,    -1,    -1,   327,   328,    -1,    -1,
      -1,    -1,   333,   334,   335,    -1,   337,   338,   339,    -1,
     341,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     351,   352,   353,    -1,   355,   356,   357,   358,   359,   360,
     361,   362,   363,   364,   365,   366,    -1,    -1,   369,   370,
     371,    -1,   373,    -1,   375,   376,   377,   378,    -1,   380,
     381,   382,    -1,    -1,   385,    -1,    -1,    -1,   389,   390,
     391,   392,   393,    -1,    -1,   396,   397,   398,    -1,   400,
     401,    -1,   403,   404,   405,    -1,    -1,   408,    -1,   410,
     411,   412,    -1,   414,   415,    -1,    -1,    -1,   419,   420,
     421,   422,   423,   424,   425,   426,   427,    -1,   429,   430,
      -1,    -1,    -1,   434,   435,   436,   437,    -1,    -1,    -1,
     441,    -1,    -1,    -1,   445,   446,   447,   448,    -1,   450,
     451,   452,   453,   454,    -1,    -1,    -1,    -1,    -1,    -1,
     461,   462,    -1,   464,    -1,    -1,   467,    -1,    -1,   470,
     471,   472,    -1,    -1,   475,   476,    -1,   478,   479,   480,
     481,   482,    -1,    -1,   485,   486,   487,   488,    -1,   490,
     491,    -1,    -1,   494,   495,   496,    -1,    -1,   499,   500,
      -1,   502,   503,   504,   505,    -1,    -1,    -1,    -1,    -1,
     511,   512,    -1,    -1,    -1,   516,   517,   518,   519,    -1,
     521,   522,    -1,   524,   525,    -1,   527,   528,    -1,    -1,
     531,    -1,    -1,   534,    -1,   536,    -1,   538,   539,    -1,
      -1,    -1,    -1,    -1,    -1,   546,    -1,    -1,   549,    -1,
      -1,    -1,   553,   554,   555,   556,    -1,    -1,    -1,    -1,
     561,   562,    -1,   564,   565,    -1,    -1,   568,    -1,    -1,
       5,    -1,     7,     8,     9,    10,    11,    -1,    -1,    -1,
      -1,    -1,    17,    -1,    -1,    20,   587,    22,    23,    24,
      25,    26,    27,    28,    -1,    30,    -1,    -1,    -1,    34,
      -1,    -1,    -1,    38,    -1,    -1,    41,    42,    43,    -1,
      45,    -1,    47,    48,    -1,    -1,    51,    -1,    -1,    54,
      -1,    56,    57,    -1,    59,    -1,    61,    62,    63,    64,
      65,    -1,    67,    68,    -1,    70,    71,    72,    73,    74,
      75,    76,    -1,    78,    79,    -1,    81,    82,    -1,    84,
      -1,    -1,    87,    -1,    -1,    90,    -1,    -1,    -1,    -1,
      -1,    -1,    97,    98,    99,    -1,    -1,   102,    -1,    -1,
      -1,    -1,   107,   108,    -1,    -1,    -1,    -1,   113,    -1,
     115,    -1,    -1,    -1,   119,    -1,   121,   122,   123,   124,
      -1,    -1,    -1,   128,    -1,    -1,   131,   132,   133,    -1,
      -1,    -1,   137,    -1,   139,   140,    -1,   142,   143,   144,
      -1,    -1,   147,    -1,   149,   150,   151,   152,   153,    -1,
      -1,   156,   157,   158,    -1,    -1,   161,   162,    -1,   164,
     165,   166,    -1,    -1,   169,    -1,    -1,    -1,   173,   174,
      -1,   176,    -1,   178,    -1,   180,   181,   182,   183,    -1,
     185,    -1,    -1,    -1,   189,   190,    -1,   192,    -1,    -1,
     195,   196,    -1,    -1,    -1,   200,   201,   202,   203,    -1,
      -1,   206,   207,    -1,    -1,   210,    -1,   212,    -1,    -1,
      -1,   216,   217,    -1,    -1,    -1,   221,    -1,   223,   224,
      -1,   226,   227,    -1,    -1,    -1,   231,    -1,    -1,   234,
     235,    -1,    -1,   238,    -1,    -1,   241,   242,    -1,    -1,
      -1,    -1,    -1,   248,   249,    -1,   251,    -1,   253,    -1,
     255,   256,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   264,
     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
     275,   276,    -1,   278,   279,    -1,   281,   282,   283,   284,
      -1,   286,   287,   288,    -1,    -1,    -1,   292,   293,   294,
     295,   296,    -1,    -1,   299,   300,    -1,   302,    -1,   304,
      -1,   306,   307,   308,   309,   310,   311,   312,   313,    -1,
      -1,   316,   317,    -1,    -1,   320,   321,   322,   323,    -1,
      -1,    -1,   327,   328,    -1,    -1,    -1,    -1,   333,   334,
     335,    -1,   337,   338,   339,    -1,   341,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   351,   352,   353,    -1,
     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
     365,   366,    -1,    -1,   369,   370,   371,    -1,   373,    -1,
     375,   376,   377,   378,    -1,   380,   381,   382,    -1,    -1,
     385,    -1,    -1,    -1,   389,   390,   391,   392,   393,    -1,
      -1,   396,   397,   398,    -1,   400,   401,    -1,   403,   404,
     405,    -1,    -1,   408,    -1,   410,   411,   412,    -1,   414,
     415,    -1,    -1,    -1,   419,   420,   421,   422,   423,   424,
     425,   426,   427,    -1,   429,   430,    -1,    -1,    -1,   434,
     435,   436,   437,    -1,    -1,    -1,   441,    -1,    -1,    -1,
     445,   446,   447,   448,    -1,   450,   451,   452,   453,   454,
      -1,    -1,    -1,    -1,    -1,    -1,   461,   462,    -1,   464,
      -1,    -1,   467,    -1,    -1,   470,   471,   472,    -1,    -1,
     475,   476,    -1,   478,   479,   480,   481,   482,    -1,    -1,
     485,   486,   487,   488,    -1,   490,   491,    -1,    -1,   494,
     495,   496,    -1,    -1,   499,   500,    -1,   502,   503,   504,
     505,    -1,    -1,    -1,    -1,    -1,   511,   512,    -1,    -1,
      -1,   516,   517,   518,   519,    -1,   521,   522,    -1,   524,
     525,    -1,   527,   528,    -1,    -1,   531,    -1,    -1,   534,
      -1,   536,    -1,   538,   539,    -1,    -1,    -1,    -1,    -1,
      -1,   546,    -1,    -1,   549,    -1,    -1,    -1,   553,   554,
     555,   556,    -1,    -1,    -1,    -1,   561,   562,    -1,   564,
     565,    -1,    -1,   568,    -1,    -1,    -1,    -1,     5,   574,
       7,     8,     9,    10,    11,    -1,    -1,    -1,    -1,    -1,
      17,    -1,   587,    20,    -1,    22,    23,    24,    25,    26,
      27,    28,    -1,    30,    -1,    -1,    -1,    34,    -1,    -1,
      -1,    38,    -1,    -1,    41,    42,    43,    -1,    45,    -1,
      47,    48,    -1,    -1,    51,    -1,    -1,    54,    -1,    56,
      57,    -1,    59,    -1,    61,    62,    63,    64,    65,    -1,
      67,    68,    -1,    70,    71,    72,    73,    74,    75,    76,
      -1,    78,    79,    -1,    81,    82,    -1,    84,    -1,    -1,
      87,    -1,    -1,    90,    -1,    -1,    -1,    -1,    -1,    -1,
      97,    98,    99,    -1,    -1,   102,    -1,    -1,    -1,    -1,
     107,   108,    -1,    -1,    -1,    -1,   113,    -1,   115,    -1,
      -1,    -1,   119,    -1,   121,   122,   123,   124,    -1,    -1,
      -1,   128,    -1,    -1,   131,   132,   133,    -1,    -1,    -1,
     137,    -1,   139,   140,    -1,   142,   143,   144,    -1,    -1,
     147,    -1,   149,   150,   151,   152,   153,    -1,    -1,   156,
     157,   158,    -1,    -1,   161,   162,    -1,   164,   165,   166,
      -1,    -1,   169,    -1,    -1,    -1,   173,   174,    -1,   176,
      -1,   178,    -1,   180,   181,   182,   183,    -1,   185,    -1,
      -1,    -1,   189,   190,    -1,   192,    -1,    -1,   195,   196,
      -1,    -1,    -1,   200,   201,   202,   203,    -1,    -1,   206,
     207,    -1,    -1,   210,    -1,   212,    -1,    -1,    -1,   216,
     217,    -1,    -1,    -1,   221,    -1,   223,   224,    -1,   226,
     227,    -1,    -1,    -1,   231,    -1,    -1,   234,   235,    -1,
      -1,   238,    -1,    -1,   241,   242,    -1,    -1,    -1,    -1,
      -1,   248,   249,    -1,   251,    -1,   253,    -1,   255,   256,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   264,   265,   266,
     267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
      -1,   278,   279,    -1,   281,   282,   283,   284,    -1,   286,
     287,   288,    -1,    -1,    -1,   292,   293,   294,   295,   296,
      -1,    -1,   299,   300,    -1,   302,    -1,   304,    -1,   306,
     307,   308,   309,   310,   311,   312,   313,    -1,    -1,   316,
     317,    -1,    -1,   320,   321,   322,   323,    -1,    -1,    -1,
     327,   328,    -1,    -1,    -1,    -1,   333,   334,   335,    -1,
     337,   338,   339,    -1,   341,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   351,   352,   353,    -1,   355,   356,
     357,   358,   359,   360,   361,   362,   363,   364,   365,   366,
      -1,    -1,   369,   370,   371,    -1,   373,    -1,   375,   376,
     377,   378,    -1,   380,   381,   382,    -1,    -1,   385,    -1,
      -1,    -1,   389,   390,   391,   392,   393,    -1,    -1,   396,
     397,   398,    -1,   400,   401,    -1,   403,   404,   405,    -1,
      -1,   408,    -1,   410,   411,   412,    -1,   414,   415,    -1,
      -1,    -1,   419,   420,   421,   422,   423,   424,   425,   426,
     427,    -1,   429,   430,    -1,    -1,    -1,   434,   435,   436,
     437,    -1,    -1,    -1,   441,    -1,    -1,    -1,   445,   446,
     447,   448,    -1,   450,   451,   452,   453,   454,    -1,    -1,
      -1,    -1,    -1,    -1,   461,   462,    -1,   464,    -1,    -1,
     467,    -1,    -1,   470,   471,   472,    -1,    -1,   475,   476,
      -1,   478,   479,   480,   481,   482,    -1,    -1,   485,   486,
     487,   488,    -1,   490,   491,    -1,    -1,   494,   495,   496,
      -1,    -1,   499,   500,    -1,   502,   503,   504,   505,    -1,
      -1,    -1,    -1,    -1,   511,   512,    -1,    -1,    -1,   516,
     517,   518,   519,    -1,   521,   522,    -1,   524,   525,    -1,
     527,   528,    -1,    -1,   531,    -1,    -1,   534,    -1,   536,
      -1,   538,   539,    -1,    -1,    -1,    -1,    -1,    -1,   546,
      -1,    -1,   549,    -1,    -1,    -1,   553,   554,   555,   556,
      -1,    -1,    -1,    -1,   561,   562,    -1,   564,   565,    -1,
      -1,   568,    -1,    -1,     5,    -1,     7,     8,     9,    10,
      11,    -1,   579,    -1,    -1,    -1,    17,    -1,    -1,    20,
     587,    22,    23,    24,    25,    26,    27,    28,    -1,    30,
      -1,    -1,    -1,    34,    -1,    -1,    -1,    38,    -1,    -1,
      41,    42,    43,    -1,    45,    -1,    47,    48,    -1,    -1,
      51,    -1,    -1,    54,    -1,    56,    57,    -1,    59,    -1,
      61,    62,    63,    64,    65,    -1,    67,    68,    -1,    70,
      71,    72,    73,    74,    75,    76,    -1,    78,    79,    -1,
      81,    82,    -1,    84,    -1,    -1,    87,    -1,    -1,    90,
      -1,    -1,    -1,    -1,    -1,    -1,    97,    98,    99,    -1,
      -1,   102,    -1,    -1,    -1,    -1,   107,   108,    -1,    -1,
      -1,    -1,   113,    -1,   115,    -1,    -1,    -1,   119,    -1,
     121,   122,   123,   124,    -1,    -1,    -1,   128,    -1,    -1,
     131,   132,   133,    -1,    -1,    -1,   137,    -1,   139,   140,
      -1,   142,   143,   144,    -1,    -1,   147,    -1,   149,   150,
     151,   152,   153,    -1,    -1,   156,   157,   158,    -1,    -1,
     161,   162,    -1,   164,   165,   166,    -1,    -1,   169,    -1,
      -1,    -1,   173,   174,    -1,   176,    -1,   178,    -1,   180,
     181,   182,   183,    -1,   185,    -1,    -1,    -1,   189,   190,
      -1,   192,    -1,    -1,   195,   196,    -1,    -1,    -1,   200,
     201,   202,   203,    -1,    -1,   206,   207,    -1,    -1,   210,
      -1,   212,    -1,    -1,    -1,   216,   217,    -1,    -1,    -1,
     221,    -1,   223,   224,    -1,   226,   227,    -1,    -1,    -1,
     231,    -1,    -1,   234,   235,    -1,    -1,   238,    -1,    -1,
     241,   242,    -1,    -1,    -1,    -1,    -1,   248,   249,    -1,
     251,    -1,   253,    -1,   255,   256,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   264,   265,   266,   267,   268,   269,   270,
     271,   272,   273,   274,   275,   276,    -1,   278,   279,    -1,
     281,   282,   283,   284,    -1,   286,   287,   288,    -1,    -1,
      -1,   292,   293,   294,   295,   296,    -1,    -1,   299,   300,
      -1,   302,    -1,   304,    -1,   306,   307,   308,   309,   310,
     311,   312,   313,    -1,    -1,   316,   317,    -1,    -1,   320,
     321,   322,   323,    -1,    -1,    -1,   327,   328,    -1,    -1,
      -1,    -1,   333,   334,   335,    -1,   337,   338,   339,    -1,
     341,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     351,   352,   353,    -1,   355,   356,   357,   358,   359,   360,
     361,   362,   363,   364,   365,   366,    -1,    -1,   369,   370,
     371,    -1,   373,    -1,   375,   376,   377,   378,    -1,   380,
     381,   382,    -1,    -1,   385,    -1,    -1,    -1,   389,   390,
     391,   392,   393,    -1,    -1,   396,   397,   398,    -1,   400,
     401,    -1,   403,   404,   405,    -1,    -1,   408,    -1,   410,
     411,   412,    -1,   414,   415,    -1,    -1,    -1,   419,   420,
     421,   422,   423,   424,   425,   426,   427,    -1,   429,   430,
      -1,    -1,    -1,   434,   435,   436,   437,    -1,    -1,    -1,
     441,    -1,    -1,    -1,   445,   446,   447,   448,    -1,   450,
     451,   452,   453,   454,    -1,    -1,    -1,    -1,    -1,    -1,
     461,   462,    -1,   464,    -1,    -1,   467,    -1,    -1,   470,
     471,   472,    -1,    -1,   475,   476,    -1,   478,   479,   480,
     481,   482,    -1,    -1,   485,   486,   487,   488,    -1,   490,
     491,    -1,    -1,   494,   495,   496,    -1,    -1,   499,   500,
      -1,   502,   503,   504,   505,    -1,    -1,    -1,    -1,    -1,
     511,   512,    -1,    -1,    -1,   516,   517,   518,   519,    -1,
     521,   522,    -1,   524,   525,    -1,   527,   528,    -1,    -1,
     531,    -1,    -1,   534,    -1,   536,    -1,   538,   539,    -1,
      -1,    -1,    -1,    -1,    -1,   546,    -1,    -1,   549,    -1,
      -1,    -1,   553,   554,   555,   556,    -1,    -1,    -1,    -1,
     561,   562,    -1,   564,   565,    -1,    -1,   568,    -1,    -1,
      -1,    -1,     5,    -1,     7,     8,     9,    10,    11,    -1,
      -1,    -1,    -1,    -1,    17,   586,   587,    20,    -1,    22,
      23,    24,    25,    26,    27,    28,    -1,    30,    -1,    -1,
      -1,    34,    -1,    -1,    -1,    38,    -1,    -1,    41,    42,
      43,    -1,    45,    -1,    47,    48,    -1,    -1,    51,    -1,
      -1,    54,    -1,    56,    57,    -1,    59,    -1,    61,    62,
      63,    64,    65,    -1,    67,    68,    -1,    70,    71,    72,
      73,    74,    75,    76,    -1,    78,    79,    -1,    81,    82,
      -1,    84,    -1,    -1,    87,    -1,    -1,    90,    -1,    -1,
      -1,    -1,    -1,    -1,    97,    98,    99,    -1,    -1,   102,
      -1,    -1,    -1,    -1,   107,   108,    -1,    -1,    -1,    -1,
     113,    -1,   115,    -1,    -1,    -1,   119,    -1,   121,   122,
     123,   124,    -1,    -1,    -1,   128,    -1,    -1,   131,   132,
     133,    -1,    -1,    -1,   137,    -1,   139,   140,    -1,   142,
     143,   144,    -1,    -1,   147,    -1,   149,   150,   151,   152,
     153,    -1,    -1,   156,   157,   158,    -1,    -1,   161,   162,
      -1,   164,   165,   166,    -1,    -1,   169,    -1,    -1,    -1,
     173,   174,    -1,   176,    -1,   178,    -1,   180,   181,   182,
     183,    -1,   185,    -1,    -1,    -1,   189,   190,    -1,   192,
      -1,    -1,   195,   196,    -1,    -1,    -1,   200,   201,   202,
     203,    -1,    -1,   206,   207,    -1,    -1,   210,    -1,   212,
      -1,    -1,    -1,   216,   217,    -1,    -1,    -1,   221,    -1,
     223,   224,    -1,   226,   227,    -1,    -1,    -1,   231,    -1,
      -1,   234,   235,    -1,    -1,   238,    -1,    -1,   241,   242,
      -1,    -1,    -1,    -1,    -1,   248,   249,    -1,   251,    -1,
     253,    -1,   255,   256,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   264,   265,   266,   267,   268,   269,   270,   271,   272,
     273,   274,   275,   276,    -1,   278,   279,    -1,   281,   282,
     283,   284,    -1,   286,   287,   288,    -1,    -1,    -1,   292,
     293,   294,   295,   296,    -1,    -1,   299,   300,    -1,   302,
      -1,   304,    -1,   306,   307,   308,   309,   310,   311,   312,
     313,    -1,    -1,   316,   317,    -1,    -1,   320,   321,   322,
     323,    -1,    -1,    -1,   327,   328,    -1,    -1,    -1,    -1,
     333,   334,   335,    -1,   337,   338,   339,    -1,   341,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   351,   352,
     353,    -1,   355,   356,   357,   358,   359,   360,   361,   362,
     363,   364,   365,   366,    -1,    -1,   369,   370,   371,    -1,
     373,    -1,   375,   376,   377,   378,    -1,   380,   381,   382,
      -1,    -1,   385,    -1,    -1,    -1,   389,   390,   391,   392,
     393,    -1,    -1,   396,   397,   398,    -1,   400,   401,    -1,
     403,   404,   405,    -1,    -1,   408,    -1,   410,   411,   412,
      -1,   414,   415,    -1,    -1,    -1,   419,   420,   421,   422,
     423,   424,   425,   426,   427,    -1,   429,   430,    -1,    -1,
      -1,   434,   435,   436,   437,    -1,    -1,    -1,   441,    -1,
      -1,    -1,   445,   446,   447,   448,    -1,   450,   451,   452,
     453,   454,    -1,    -1,    -1,    -1,    -1,    -1,   461,   462,
      -1,   464,    -1,    -1,   467,    -1,    -1,   470,   471,   472,
      -1,    -1,   475,   476,    -1,   478,   479,   480,   481,   482,
      -1,    -1,   485,   486,   487,   488,    -1,   490,   491,    -1,
      -1,   494,   495,   496,    -1,    -1,   499,   500,    -1,   502,
     503,   504,   505,    -1,    -1,    -1,    -1,    -1,   511,   512,
      -1,    -1,    -1,   516,   517,   518,   519,    -1,   521,   522,
      -1,   524,   525,    -1,   527,   528,    -1,    -1,   531,    -1,
      -1,   534,    -1,   536,    -1,   538,   539,    -1,    -1,    -1,
      -1,    -1,    -1,   546,    -1,    -1,   549,    -1,    -1,    -1,
     553,   554,   555,   556,    -1,    -1,    -1,    -1,   561,   562,
      -1,   564,   565,    -1,    -1,   568,    -1,    -1,     5,    -1,
       7,     8,     9,    10,    11,    -1,    -1,    -1,    -1,    -1,
      17,    -1,    -1,    20,   587,    22,    23,    24,    25,    26,
      27,    28,    -1,    30,    -1,    -1,    -1,    34,    -1,    -1,
      -1,    38,    -1,    -1,    41,    42,    43,    -1,    45,    -1,
      47,    48,    -1,    -1,    51,    -1,    -1,    54,    -1,    56,
      57,    -1,    59,    -1,    61,    62,    63,    64,    65,    -1,
      67,    68,    -1,    70,    71,    72,    73,    74,    75,    76,
      -1,    78,    79,    -1,    81,    82,    -1,    84,    -1,    -1,
      87,    -1,    -1,    90,    -1,    -1,    -1,    -1,    -1,    -1,
      97,    98,    99,    -1,    -1,   102,    -1,    -1,    -1,    -1,
     107,   108,    -1,    -1,    -1,    -1,   113,    -1,   115,    -1,
      -1,    -1,   119,    -1,   121,   122,   123,   124,    -1,    -1,
      -1,   128,    -1,    -1,   131,   132,   133,    -1,    -1,    -1,
     137,    -1,   139,   140,    -1,   142,   143,   144,    -1,    -1,
     147,    -1,   149,   150,   151,   152,   153,    -1,    -1,   156,
     157,   158,    -1,    -1,   161,   162,    -1,   164,   165,   166,
      -1,    -1,   169,    -1,    -1,    -1,   173,   174,    -1,   176,
      -1,   178,    -1,   180,   181,   182,   183,    -1,   185,    -1,
      -1,    -1,   189,   190,    -1,   192,    -1,    -1,   195,   196,
      -1,    -1,    -1,   200,   201,   202,   203,    -1,    -1,   206,
     207,    -1,    -1,   210,    -1,   212,    -1,    -1,    -1,   216,
     217,    -1,    -1,    -1,   221,    -1,   223,   224,    -1,   226,
     227,    -1,    -1,    -1,   231,    -1,    -1,   234,   235,    -1,
      -1,   238,    -1,    -1,   241,   242,    -1,    -1,    -1,    -1,
      -1,   248,   249,    -1,   251,    -1,   253,    -1,   255,   256,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   264,   265,   266,
     267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
      -1,   278,   279,    -1,   281,   282,   283,   284,    -1,   286,
     287,   288,    -1,    -1,    -1,   292,   293,   294,   295,   296,
      -1,    -1,   299,   300,    -1,   302,    -1,   304,    -1,   306,
     307,   308,   309,   310,   311,   312,   313,    -1,    -1,   316,
     317,    -1,    -1,   320,   321,   322,   323,    -1,    -1,    -1,
     327,   328,    -1,    -1,    -1,    -1,   333,   334,   335,    -1,
     337,   338,   339,    -1,   341,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   351,   352,   353,    -1,   355,   356,
     357,   358,   359,   360,   361,   362,   363,   364,   365,   366,
      -1,    -1,   369,   370,   371,    -1,   373,    -1,   375,   376,
     377,   378,    -1,   380,   381,   382,    -1,    -1,   385,    -1,
      -1,    -1,   389,   390,   391,   392,   393,    -1,    -1,   396,
     397,   398,    -1,   400,   401,    -1,   403,   404,   405,    -1,
      -1,   408,    -1,   410,   411,   412,    -1,   414,   415,    -1,
      -1,    -1,   419,   420,   421,   422,   423,   424,   425,   426,
     427,    -1,   429,   430,    -1,    -1,    -1,   434,   435,   436,
     437,    -1,    -1,    -1,   441,    -1,    -1,    -1,   445,   446,
     447,   448,    -1,   450,   451,   452,   453,   454,    -1,    -1,
      -1,    -1,    -1,    -1,   461,   462,    -1,   464,    -1,    -1,
     467,    -1,    -1,   470,   471,   472,    -1,    -1,   475,   476,
      -1,   478,   479,   480,   481,   482,    -1,    -1,   485,   486,
     487,   488,    -1,   490,   491,    -1,    -1,   494,   495,   496,
      -1,    -1,   499,   500,    -1,   502,   503,   504,   505,    -1,
      -1,    -1,    -1,    -1,   511,   512,    -1,    -1,    -1,   516,
     517,   518,   519,    -1,   521,   522,    -1,   524,   525,    -1,
     527,   528,    -1,    -1,   531,    -1,    -1,   534,    -1,   536,
      -1,   538,   539,    -1,    -1,    -1,    -1,    -1,    -1,   546,
      -1,    -1,   549,    -1,    -1,    -1,   553,   554,   555,   556,
      -1,    -1,    -1,    -1,   561,   562,    -1,   564,   565,    -1,
      -1,   568,    -1,    -1,     5,    -1,     7,     8,     9,    10,
      11,    -1,    -1,    -1,    -1,    -1,    17,    -1,    -1,    20,
     587,    22,    23,    24,    25,    26,    27,    28,    -1,    30,
      -1,    -1,    -1,    34,    -1,    -1,    -1,    38,    -1,    -1,
      41,    42,    43,    -1,    45,    -1,    47,    48,    -1,    -1,
      51,    -1,    -1,    54,    -1,    56,    57,    -1,    59,    -1,
      61,    62,    63,    64,    65,    -1,    67,    68,    -1,    70,
      71,    72,    73,    74,    75,    76,    -1,    78,    79,    -1,
      81,    82,    -1,    84,    -1,    -1,    87,    -1,    -1,    90,
      -1,    -1,    -1,    -1,    -1,    -1,    97,    98,    99,    -1,
      -1,   102,    -1,    -1,    -1,    -1,   107,   108,    -1,    -1,
      -1,    -1,   113,    -1,   115,    -1,    -1,    -1,   119,    -1,
     121,   122,   123,   124,    -1,    -1,    -1,   128,    -1,    -1,
     131,   132,   133,    -1,    -1,    -1,   137,    -1,   139,   140,
      -1,   142,   143,   144,    -1,    -1,   147,    -1,   149,   150,
     151,   152,   153,    -1,    -1,   156,   157,   158,    -1,    -1,
     161,   162,    -1,   164,   165,   166,    -1,    -1,   169,    -1,
      -1,    -1,   173,   174,    -1,   176,    -1,   178,    -1,   180,
     181,   182,   183,    -1,   185,    -1,    -1,    -1,   189,   190,
      -1,   192,    -1,    -1,   195,   196,    -1,    -1,    -1,   200,
     201,   202,   203,    -1,    -1,   206,   207,    -1,    -1,   210,
      -1,   212,    -1,    -1,    -1,   216,   217,    -1,    -1,    -1,
     221,    -1,   223,   224,    -1,   226,   227,    -1,    -1,    -1,
     231,    -1,    -1,   234,   235,    -1,    -1,   238,    -1,    -1,
     241,   242,    -1,    -1,    -1,    -1,    -1,   248,   249,    -1,
     251,    -1,   253,    -1,   255,   256,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   264,   265,   266,   267,   268,   269,   270,
     271,   272,   273,   274,   275,   276,    -1,   278,   279,    -1,
     281,   282,   283,   284,    -1,   286,   287,   288,    -1,    -1,
      -1,   292,   293,   294,   295,   296,    -1,    -1,   299,   300,
      -1,   302,    -1,   304,    -1,   306,   307,   308,   309,   310,
     311,   312,   313,    -1,    -1,   316,   317,    -1,    -1,   320,
     321,   322,   323,    -1,    -1,    -1,   327,   328,    -1,    -1,
      -1,    -1,   333,   334,   335,    -1,   337,   338,   339,    -1,
     341,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     351,   352,   353,    -1,   355,   356,   357,   358,   359,   360,
     361,   362,   363,   364,   365,   366,    -1,    -1,   369,   370,
     371,    -1,   373,    -1,   375,   376,   377,   378,    -1,   380,
     381,   382,    -1,    -1,   385,    -1,    -1,    -1,   389,   390,
     391,   392,   393,    -1,    -1,   396,   397,   398,    -1,   400,
     401,    -1,   403,   404,   405,    -1,    -1,   408,    -1,   410,
     411,   412,    -1,   414,   415,    -1,    -1,    -1,   419,   420,
     421,   422,   423,   424,   425,   426,   427,    -1,   429,   430,
      -1,    -1,    -1,   434,   435,   436,   437,    -1,    -1,    -1,
     441,    -1,    -1,    -1,   445,   446,   447,   448,    -1,   450,
     451,   452,   453,   454,    -1,    -1,    -1,    -1,    -1,    -1,
     461,   462,    -1,   464,    -1,    -1,   467,    -1,    -1,   470,
     471,   472,    -1,    -1,   475,   476,    -1,   478,   479,   480,
     481,   482,    -1,    -1,   485,   486,   487,   488,    -1,   490,
     491,    -1,    -1,   494,   495,   496,    -1,    -1,   499,   500,
      -1,   502,   503,   504,   505,    -1,    -1,    -1,    -1,    -1,
     511,   512,    -1,    -1,    -1,   516,   517,   518,   519,    -1,
     521,   522,    -1,   524,   525,    -1,   527,   528,    -1,    -1,
     531,    -1,    -1,   534,    -1,   536,    -1,   538,   539,    -1,
      -1,    -1,    -1,    -1,    -1,   546,    -1,    -1,   549,    -1,
      -1,    -1,   553,   554,   555,   556,    -1,    -1,    -1,    -1,
     561,   562,    -1,   564,   565,    -1,    -1,   568,    -1,    -1,
       5,    -1,     7,     8,     9,    10,    11,    -1,    -1,    -1,
      -1,    -1,    17,    -1,    -1,    20,   587,    22,    23,    24,
      25,    26,    27,    28,    -1,    30,    -1,    -1,    -1,    34,
      -1,    -1,    -1,    38,    -1,    -1,    41,    42,    43,    -1,
      45,    -1,    47,    48,    -1,    -1,    51,    -1,    -1,    54,
      -1,    56,    57,    -1,    59,    -1,    61,    62,    63,    64,
      65,    -1,    67,    68,    -1,    70,    71,    72,    73,    74,
      75,    76,    -1,    78,    79,    -1,    81,    82,    -1,    84,
      -1,    -1,    87,    -1,    -1,    90,    -1,    -1,    -1,    -1,
      -1,    -1,    97,    98,    99,    -1,    -1,   102,    -1,    -1,
      -1,    -1,   107,   108,    -1,    -1,    -1,    -1,   113,    -1,
     115,    -1,    -1,    -1,   119,    -1,   121,   122,   123,   124,
      -1,    -1,    -1,   128,    -1,    -1,   131,   132,   133,    -1,
      -1,    -1,   137,    -1,   139,   140,    -1,   142,   143,   144,
      -1,    -1,   147,    -1,   149,   150,   151,   152,   153,    -1,
      -1,   156,   157,   158,    -1,    -1,   161,   162,    -1,   164,
     165,   166,    -1,    -1,   169,    -1,    -1,    -1,   173,   174,
      -1,   176,    -1,   178,    -1,   180,   181,   182,   183,    -1,
     185,    -1,    -1,    -1,   189,   190,    -1,   192,    -1,    -1,
     195,   196,    -1,    -1,    -1,   200,   201,   202,   203,    -1,
      -1,   206,   207,    -1,    -1,   210,    -1,   212,    -1,    -1,
      -1,   216,   217,    -1,    -1,    -1,   221,    -1,   223,   224,
      -1,   226,   227,    -1,    -1,    -1,   231,    -1,    -1,   234,
     235,    -1,    -1,   238,    -1,    -1,   241,   242,    -1,    -1,
      -1,    -1,    -1,   248,   249,    -1,   251,    -1,   253,    -1,
     255,   256,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   264,
     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
     275,   276,    -1,   278,   279,    -1,   281,   282,   283,   284,
      -1,   286,   287,   288,    -1,    -1,    -1,   292,   293,   294,
     295,   296,    -1,    -1,   299,   300,    -1,   302,    -1,   304,
      -1,   306,   307,   308,   309,   310,   311,   312,   313,    -1,
      -1,   316,   317,    -1,    -1,   320,   321,   322,   323,    -1,
      -1,    -1,   327,   328,    -1,    -1,    -1,    -1,   333,   334,
     335,    -1,   337,   338,   339,    -1,   341,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   351,   352,   353,    -1,
     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
     365,   366,    -1,    -1,   369,   370,   371,    -1,   373,    -1,
     375,   376,   377,   378,    -1,   380,   381,   382,    -1,    -1,
     385,    -1,    -1,    -1,   389,   390,   391,   392,   393,    -1,
      -1,   396,   397,   398,    -1,   400,   401,    -1,   403,   404,
     405,    -1,    -1,   408,    -1,   410,   411,   412,    -1,   414,
     415,    -1,    -1,    -1,   419,   420,   421,   422,   423,   424,
     425,   426,   427,    -1,   429,   430,    -1,    -1,    -1,   434,
     435,   436,   437,    -1,    -1,    -1,   441,    -1,    -1,    -1,
     445,   446,   447,   448,    -1,   450,   451,   452,   453,   454,
      -1,    -1,    -1,    -1,    -1,    -1,   461,   462,    -1,   464,
      -1,    -1,   467,    -1,    -1,   470,   471,   472,    -1,    -1,
     475,   476,    -1,   478,   479,   480,   481,   482,    -1,    -1,
     485,   486,   487,   488,    -1,   490,   491,    -1,    -1,   494,
     495,   496,    -1,    -1,   499,   500,    -1,   502,   503,   504,
     505,    -1,    -1,    -1,    -1,    -1,   511,   512,    -1,    -1,
      -1,   516,   517,   518,   519,    -1,   521,   522,    -1,   524,
     525,    -1,   527,   528,    -1,    -1,   531,    -1,    -1,   534,
      -1,   536,    -1,   538,   539,    -1,    -1,    -1,    -1,    -1,
      -1,   546,    -1,    -1,   549,    -1,    -1,    -1,   553,   554,
     555,   556,    -1,    -1,    -1,    -1,   561,   562,    -1,   564,
     565,    -1,    -1,   568,    -1,    -1,     5,    -1,     7,     8,
       9,    10,    11,    -1,    -1,    -1,    -1,    -1,    17,    -1,
      -1,    20,   587,    22,    23,    24,    25,    26,    27,    28,
      -1,    30,    -1,    -1,    -1,    34,    -1,    -1,    -1,    38,
      -1,    -1,    41,    42,    43,    -1,    45,    -1,    47,    48,
      -1,    -1,    51,    -1,    -1,    54,    -1,    56,    57,    -1,
      59,    -1,    61,    62,    63,    64,    65,    -1,    67,    68,
      -1,    70,    71,    72,    73,    74,    75,    76,    -1,    78,
      79,    -1,    81,    82,    -1,    84,    -1,    -1,    87,    -1,
      -1,    90,    -1,    -1,    -1,    -1,    -1,    -1,    97,    98,
      99,    -1,    -1,   102,    -1,    -1,    -1,    -1,   107,   108,
      -1,    -1,    -1,    -1,   113,    -1,   115,    -1,    -1,    -1,
     119,    -1,   121,   122,   123,   124,    -1,    -1,    -1,   128,
      -1,    -1,   131,   132,   133,    -1,    -1,    -1,   137,    -1,
     139,   140,    -1,   142,   143,   144,    -1,    -1,   147,    -1,
     149,   150,   151,   152,   153,    -1,    -1,   156,   157,   158,
      -1,    -1,   161,   162,    -1,   164,   165,   166,    -1,    -1,
     169,    -1,    -1,    -1,   173,   174,    -1,   176,    -1,   178,
      -1,   180,   181,   182,   183,    -1,   185,    -1,    -1,    -1,
     189,   190,    -1,   192,    -1,    -1,   195,   196,    -1,    -1,
      -1,   200,   201,   202,   203,    -1,    -1,   206,   207,    -1,
      -1,   210,    -1,   212,    -1,    -1,    -1,   216,   217,    -1,
      -1,    -1,   221,    -1,   223,   224,    -1,   226,   227,    -1,
      -1,    -1,   231,    -1,    -1,   234,   235,    -1,    -1,   238,
      -1,    -1,   241,   242,   243,    -1,    -1,    -1,    -1,   248,
     249,    -1,   251,    -1,   253,    -1,   255,   256,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   264,   265,   266,   267,   268,
     269,   270,   271,   272,   273,   274,   275,   276,    -1,   278,
     279,    -1,   281,   282,   283,   284,    -1,   286,   287,   288,
      -1,    -1,    -1,   292,   293,   294,   295,   296,    -1,    -1,
     299,   300,    -1,   302,    -1,   304,    -1,   306,   307,   308,
     309,   310,   311,   312,   313,    -1,    -1,   316,   317,    -1,
      -1,   320,   321,   322,   323,    -1,    -1,    -1,   327,   328,
      -1,    -1,    -1,    -1,   333,   334,   335,    -1,   337,   338,
     339,    -1,   341,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   351,   352,   353,    -1,   355,   356,   357,   358,
     359,   360,   361,   362,   363,   364,   365,   366,    -1,    -1,
     369,   370,   371,    -1,   373,    -1,   375,   376,   377,   378,
      -1,   380,   381,   382,    -1,    -1,   385,    -1,    -1,    -1,
     389,   390,   391,   392,   393,    -1,    -1,   396,   397,   398,
      -1,   400,   401,    -1,   403,   404,   405,    -1,    -1,   408,
      -1,   410,   411,   412,    -1,   414,   415,    -1,    -1,    -1,
     419,   420,   421,   422,   423,   424,   425,   426,   427,    -1,
     429,   430,    -1,    -1,    -1,   434,   435,   436,   437,    -1,
      -1,    -1,   441,    -1,    -1,    -1,   445,   446,   447,   448,
      -1,   450,   451,   452,   453,   454,    -1,    -1,    -1,    -1,
      -1,    -1,   461,   462,    -1,   464,    -1,    -1,   467,    -1,
      -1,   470,   471,   472,    -1,    -1,   475,   476,    -1,   478,
     479,   480,   481,   482,    -1,    -1,   485,   486,   487,   488,
      -1,   490,   491,    -1,    -1,   494,   495,   496,    -1,   498,
     499,   500,    -1,   502,   503,   504,   505,    -1,    -1,    -1,
      -1,    -1,   511,   512,    -1,    -1,    -1,   516,   517,   518,
     519,    -1,   521,   522,    -1,   524,   525,    -1,   527,   528,
      -1,    -1,   531,    -1,    -1,   534,    -1,   536,    -1,   538,
     539,    -1,    -1,    -1,    -1,    -1,    -1,   546,    -1,    -1,
     549,    -1,    -1,    -1,   553,   554,   555,   556,    -1,    -1,
      -1,    -1,   561,   562,    -1,   564,   565,    -1,    -1,   568,
      -1,     5,    -1,     7,     8,     9,    10,    11,    -1,    -1,
      -1,    -1,    -1,    17,    -1,    -1,    20,   586,    22,    23,
      24,    25,    26,    27,    28,    -1,    30,    -1,    -1,    -1,
      34,    -1,    -1,    -1,    38,    -1,    -1,    41,    42,    43,
      -1,    45,    -1,    47,    48,    -1,    -1,    51,    -1,    -1,
      54,    -1,    56,    57,    -1,    59,    -1,    61,    62,    63,
      64,    65,    -1,    67,    68,    -1,    70,    71,    72,    73,
      74,    75,    76,    -1,    78,    79,    -1,    81,    82,    -1,
      84,    -1,    -1,    87,    -1,    -1,    90,    -1,    -1,    -1,
      -1,    -1,    -1,    97,    98,    99,    -1,    -1,   102,    -1,
      -1,    -1,    -1,   107,   108,    -1,    -1,    -1,    -1,   113,
      -1,   115,    -1,    -1,    -1,   119,    -1,   121,   122,   123,
     124,    -1,    -1,    -1,   128,    -1,    -1,   131,   132,   133,
      -1,    -1,    -1,   137,    -1,   139,   140,    -1,   142,   143,
     144,    -1,    -1,   147,    -1,   149,   150,   151,   152,   153,
      -1,    -1,   156,   157,   158,    -1,    -1,   161,   162,    -1,
     164,   165,   166,    -1,    -1,   169,    -1,    -1,    -1,   173,
     174,    -1,   176,    -1,   178,    -1,   180,   181,   182,   183,
      -1,   185,    -1,    -1,    -1,   189,   190,    -1,   192,    -1,
      -1,   195,   196,    -1,    -1,    -1,   200,   201,   202,   203,
      -1,    -1,   206,   207,    -1,    -1,   210,    -1,   212,    -1,
      -1,    -1,   216,   217,    -1,    -1,    -1,   221,    -1,   223,
     224,    -1,   226,   227,    -1,    -1,    -1,   231,    -1,    -1,
     234,   235,    -1,    -1,   238,    -1,    -1,   241,   242,   243,
      -1,    -1,    -1,    -1,   248,   249,    -1,   251,    -1,   253,
      -1,   255,   256,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     264,   265,   266,   267,   268,   269,   270,   271,   272,   273,
     274,   275,   276,    -1,   278,   279,    -1,   281,   282,   283,
     284,    -1,   286,   287,   288,    -1,    -1,    -1,   292,   293,
     294,   295,   296,    -1,    -1,   299,   300,    -1,   302,    -1,
     304,    -1,   306,   307,   308,   309,   310,   311,   312,   313,
      -1,    -1,   316,   317,    -1,    -1,   320,   321,   322,   323,
      -1,    -1,    -1,   327,   328,    -1,    -1,    -1,    -1,   333,
     334,   335,    -1,   337,   338,   339,    -1,   341,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   351,   352,   353,
      -1,   355,   356,   357,   358,   359,   360,   361,   362,   363,
     364,   365,   366,    -1,    -1,   369,   370,   371,    -1,   373,
      -1,   375,   376,   377,   378,    -1,   380,   381,   382,    -1,
      -1,   385,    -1,    -1,    -1,   389,   390,   391,   392,   393,
      -1,    -1,   396,   397,   398,    -1,   400,   401,    -1,   403,
     404,   405,    -1,    -1,   408,    -1,   410,   411,   412,    -1,
     414,   415,    -1,    -1,    -1,   419,   420,   421,   422,   423,
     424,   425,   426,   427,    -1,   429,   430,    -1,    -1,    -1,
     434,   435,   436,   437,    -1,    -1,    -1,   441,    -1,    -1,
      -1,   445,   446,   447,   448,    -1,   450,   451,   452,   453,
     454,    -1,    -1,    -1,    -1,    -1,    -1,   461,   462,    -1,
     464,    -1,    -1,   467,    -1,    -1,   470,   471,   472,    -1,
      -1,   475,   476,    -1,   478,   479,   480,   481,   482,    -1,
      -1,   485,   486,   487,   488,    -1,   490,   491,    -1,    -1,
     494,   495,   496,    -1,   498,   499,   500,    -1,   502,   503,
     504,   505,    -1,    -1,    -1,    -1,    -1,   511,   512,    -1,
      -1,    -1,   516,   517,   518,   519,    -1,   521,   522,    -1,
     524,   525,    -1,   527,   528,    -1,    -1,   531,    -1,    -1,
     534,    -1,   536,    -1,   538,   539,    -1,    -1,    -1,    -1,
      -1,    -1,   546,    -1,    -1,   549,    -1,    -1,    -1,   553,
     554,   555,   556,    -1,    -1,    -1,    -1,   561,   562,    -1,
     564,   565,    -1,    -1,   568,    -1,     5,    -1,     7,     8,
       9,    10,    11,    -1,    -1,    -1,    -1,    -1,    17,    -1,
      -1,    20,   586,    22,    23,    24,    25,    26,    27,    28,
      -1,    30,    -1,    -1,    -1,    34,    -1,    -1,    -1,    38,
      -1,    -1,    41,    42,    43,    -1,    45,    -1,    47,    48,
      -1,    -1,    51,    -1,    -1,    54,    -1,    56,    57,    -1,
      59,    -1,    61,    62,    63,    64,    65,    -1,    67,    68,
      -1,    70,    71,    72,    73,    74,    75,    76,    -1,    78,
      79,    -1,    81,    82,    -1,    84,    -1,    -1,    87,    -1,
      -1,    90,    -1,    -1,    -1,    -1,    -1,    -1,    97,    98,
      99,    -1,    -1,   102,    -1,    -1,    -1,    -1,   107,   108,
      -1,    -1,    -1,    -1,   113,    -1,   115,    -1,    -1,    -1,
     119,    -1,   121,   122,   123,   124,    -1,    -1,    -1,   128,
      -1,    -1,   131,   132,   133,    -1,    -1,    -1,   137,    -1,
     139,   140,    -1,   142,   143,   144,    -1,    -1,   147,    -1,
     149,   150,   151,   152,   153,    -1,    -1,   156,   157,   158,
      -1,    -1,   161,   162,    -1,   164,   165,   166,    -1,    -1,
     169,    -1,    -1,    -1,   173,   174,    -1,   176,    -1,   178,
      -1,   180,   181,   182,   183,    -1,   185,    -1,    -1,    -1,
     189,   190,    -1,   192,    -1,    -1,   195,   196,    -1,    -1,
      -1,   200,   201,   202,   203,    -1,    -1,   206,   207,    -1,
      -1,   210,    -1,   212,    -1,    -1,    -1,   216,   217,    -1,
      -1,    -1,   221,    -1,   223,   224,    -1,   226,   227,    -1,
      -1,    -1,   231,    -1,    -1,   234,   235,    -1,    -1,   238,
      -1,    -1,   241,   242,   243,    -1,    -1,    -1,    -1,   248,
     249,    -1,   251,    -1,   253,    -1,   255,   256,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   264,   265,   266,   267,   268,
     269,   270,   271,   272,   273,   274,   275,   276,    -1,   278,
     279,    -1,   281,   282,   283,   284,    -1,   286,   287,   288,
      -1,    -1,    -1,   292,   293,   294,   295,   296,    -1,    -1,
     299,   300,    -1,   302,    -1,   304,    -1,   306,   307,   308,
     309,   310,   311,   312,   313,    -1,    -1,   316,   317,    -1,
      -1,   320,   321,   322,   323,    -1,    -1,    -1,   327,   328,
      -1,    -1,    -1,    -1,   333,   334,   335,    -1,   337,   338,
     339,    -1,   341,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   351,   352,   353,    -1,   355,   356,   357,   358,
     359,   360,   361,   362,   363,   364,   365,   366,    -1,    -1,
     369,   370,   371,    -1,   373,    -1,   375,   376,   377,   378,
      -1,   380,   381,   382,    -1,    -1,   385,    -1,    -1,    -1,
     389,   390,   391,   392,   393,    -1,    -1,   396,   397,   398,
      -1,   400,   401,    -1,   403,   404,   405,    -1,    -1,   408,
      -1,   410,   411,   412,    -1,   414,   415,    -1,    -1,    -1,
     419,   420,   421,   422,   423,   424,   425,   426,   427,    -1,
     429,   430,    -1,    -1,    -1,   434,   435,   436,   437,    -1,
      -1,    -1,   441,    -1,    -1,    -1,   445,   446,   447,   448,
      -1,   450,   451,   452,   453,   454,    -1,    -1,    -1,    -1,
      -1,    -1,   461,   462,    -1,   464,    -1,    -1,   467,    -1,
      -1,   470,   471,   472,    -1,    -1,   475,   476,    -1,   478,
     479,   480,   481,   482,    -1,    -1,   485,   486,   487,   488,
      -1,   490,   491,    -1,    -1,   494,   495,   496,    -1,   498,
     499,   500,    -1,   502,   503,   504,   505,    -1,    -1,    -1,
      -1,    -1,   511,   512,    -1,    -1,    -1,   516,   517,   518,
     519,    -1,   521,   522,    -1,   524,   525,    -1,   527,   528,
      -1,    -1,   531,    -1,    -1,   534,    -1,   536,    -1,   538,
     539,    -1,    -1,    -1,    -1,    -1,    -1,   546,    -1,    -1,
     549,    -1,    -1,    -1,   553,   554,   555,   556,    -1,    -1,
      -1,    -1,   561,   562,    -1,   564,   565,    -1,    -1,   568,
      -1,     5,    -1,     7,     8,     9,    10,    11,    -1,    -1,
      -1,    -1,    -1,    17,    -1,    -1,    -1,   586,    22,    23,
      24,    25,    26,    27,    -1,    -1,    30,    -1,    -1,    -1,
      34,    -1,    -1,    -1,    38,    -1,    -1,    41,    42,    43,
      -1,    45,    -1,    -1,    -1,    -1,    -1,    51,    52,    -1,
      54,    -1,    56,    -1,    -1,    -1,    -1,    61,    62,    63,
      64,    65,    -1,    67,    68,    -1,    -1,    71,    -1,    73,
      74,    75,    76,    -1,    78,    79,    -1,    -1,    82,    -1,
      84,    -1,    -1,    87,    -1,    -1,    90,    -1,    -1,    -1,
      -1,    -1,    -1,    97,    98,    99,    -1,    -1,   102,    -1,
      -1,    -1,    -1,   107,    -1,    -1,    -1,    -1,    -1,   113,
      -1,   115,    -1,    -1,    -1,   119,    -1,   121,   122,   123,
     124,    -1,    -1,    -1,    -1,    -1,    -1,   131,   132,   133,
      -1,    -1,    -1,   137,    -1,    -1,   140,    -1,   142,   143,
     144,    -1,    -1,   147,    -1,   149,   150,   151,   152,    -1,
      -1,    -1,   156,   157,   158,    -1,    -1,   161,   162,   163,
     164,   165,   166,    -1,    -1,    -1,    -1,    -1,    -1,   173,
     174,    -1,   176,    -1,   178,    -1,   180,   181,   182,   183,
      -1,   185,    -1,    -1,    -1,    -1,   190,    -1,    -1,    -1,
      -1,    -1,   196,    -1,    -1,    -1,   200,   201,   202,   203,
     204,    -1,   206,   207,    -1,    -1,   210,    -1,   212,    -1,
      -1,    -1,   216,    -1,    -1,    -1,    -1,   221,    -1,   223,
     224,    -1,   226,   227,   228,    -1,    -1,   231,    -1,    -1,
      -1,   235,    -1,    -1,   238,   239,    -1,   241,   242,    -1,
      -1,    -1,    -1,    -1,   248,   249,    -1,   251,    -1,   253,
      -1,   255,   256,    -1,    -1,    -1,    -1,   261,    -1,    -1,
     264,   265,   266,   267,   268,   269,   270,   271,   272,   273,
     274,   275,   276,    -1,   278,   279,    -1,   281,   282,   283,
     284,    -1,   286,   287,   288,    -1,    -1,    -1,   292,   293,
     294,   295,   296,    -1,    -1,   299,   300,    -1,   302,    -1,
     304,    -1,   306,   307,   308,   309,   310,   311,   312,   313,
      -1,    -1,   316,   317,    -1,    -1,   320,   321,   322,   323,
      -1,    -1,    -1,    -1,   328,    -1,    -1,    -1,    -1,   333,
     334,   335,    -1,   337,   338,   339,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   352,   353,
      -1,    -1,   356,   357,   358,    -1,   360,   361,   362,   363,
     364,   365,    -1,    -1,    -1,    -1,   370,   371,    -1,   373,
      -1,   375,   376,   377,   378,    -1,   380,   381,   382,    -1,
      -1,   385,    -1,    -1,    -1,   389,   390,   391,   392,   393,
      -1,    -1,   396,   397,   398,    -1,   400,    -1,    -1,   403,
      -1,   405,   406,    -1,   408,    -1,    -1,   411,    -1,    -1,
     414,   415,   416,    -1,    -1,    -1,   420,   421,   422,   423,
     424,   425,    -1,   427,    -1,   429,    -1,    -1,    -1,    -1,
     434,   435,   436,    -1,    -1,    -1,    -1,   441,    -1,    -1,
      -1,   445,    -1,   447,    -1,    -1,   450,    -1,    -1,   453,
     454,    -1,    -1,    -1,    -1,    -1,    -1,   461,   462,    -1,
     464,    -1,    -1,   467,    -1,    -1,   470,    -1,   472,    -1,
      -1,    -1,   476,    -1,   478,   479,   480,   481,   482,    -1,
      -1,   485,   486,   487,   488,    -1,   490,   491,    -1,    -1,
     494,   495,   496,    -1,    -1,   499,   500,    -1,   502,   503,
     504,   505,    -1,    -1,    -1,    -1,    -1,   511,   512,    -1,
      -1,    -1,    -1,   517,   518,   519,    -1,   521,   522,    -1,
     524,   525,    -1,    -1,    -1,    -1,    -1,   531,    -1,    -1,
     534,    -1,    -1,    -1,   538,   539,    -1,    -1,    -1,    -1,
      -1,    -1,   546,    -1,    -1,   549,    -1,    -1,    -1,   553,
     554,   555,   556,    -1,    -1,   559,    -1,   561,    -1,    -1,
     564,    -1,    -1,     5,   568,     7,     8,     9,    10,    11,
      -1,    -1,    -1,    -1,    -1,    17,    -1,   581,    20,    -1,
      22,    23,    24,    25,    26,    27,    28,    -1,    30,    -1,
      -1,    -1,    34,    -1,    -1,    -1,    38,    -1,    -1,    41,
      42,    43,    -1,    45,    -1,    47,    48,    -1,    -1,    51,
      -1,    -1,    54,    -1,    56,    57,    -1,    59,    -1,    61,
      62,    63,    64,    65,    -1,    67,    68,    -1,    70,    71,
      72,    73,    74,    75,    76,    -1,    78,    79,    -1,    81,
      82,    -1,    84,    -1,    -1,    87,    -1,    -1,    90,    -1,
      -1,    -1,    -1,    -1,    -1,    97,    98,    99,    -1,    -1,
     102,    -1,    -1,    -1,    -1,   107,   108,    -1,    -1,    -1,
      -1,   113,    -1,   115,    -1,    -1,    -1,   119,    -1,   121,
     122,   123,   124,    -1,    -1,    -1,   128,    -1,    -1,   131,
     132,   133,    -1,    -1,    -1,   137,    -1,   139,   140,    -1,
     142,   143,   144,    -1,    -1,   147,    -1,   149,   150,   151,
     152,   153,    -1,    -1,   156,   157,   158,    -1,    -1,   161,
     162,    -1,   164,   165,   166,    -1,    -1,   169,    -1,    -1,
      -1,   173,   174,    -1,   176,    -1,   178,    -1,   180,   181,
     182,   183,    -1,   185,    -1,    -1,    -1,   189,   190,    -1,
     192,    -1,    -1,   195,   196,    -1,    -1,    -1,   200,   201,
     202,   203,    -1,    -1,   206,   207,    -1,    -1,   210,    -1,
     212,    -1,    -1,    -1,   216,   217,    -1,    -1,    -1,   221,
      -1,   223,   224,    -1,   226,   227,    -1,    -1,    -1,   231,
      -1,    -1,   234,   235,    -1,    -1,   238,    -1,    -1,   241,
     242,    -1,    -1,    -1,    -1,    -1,   248,   249,    -1,   251,
      -1,   253,    -1,   255,   256,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   264,   265,   266,   267,   268,   269,   270,   271,
     272,   273,   274,   275,   276,    -1,   278,   279,    -1,   281,
     282,   283,   284,    -1,   286,   287,   288,    -1,    -1,    -1,
     292,   293,   294,   295,   296,    -1,    -1,   299,   300,    -1,
     302,    -1,   304,    -1,   306,   307,   308,   309,   310,   311,
     312,   313,    -1,    -1,   316,   317,    -1,    -1,   320,   321,
     322,   323,    -1,    -1,    -1,   327,   328,    -1,    -1,    -1,
      -1,   333,   334,   335,    -1,   337,   338,   339,    -1,   341,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   351,
     352,   353,    -1,   355,   356,   357,   358,   359,   360,   361,
     362,   363,   364,   365,   366,    -1,    -1,   369,   370,   371,
      -1,   373,    -1,   375,   376,   377,   378,    -1,   380,   381,
     382,    -1,    -1,   385,    -1,    -1,    -1,   389,   390,   391,
     392,   393,    -1,    -1,   396,   397,   398,    -1,   400,   401,
      -1,   403,   404,   405,    -1,    -1,   408,    -1,   410,   411,
     412,    -1,   414,   415,    -1,    -1,    -1,   419,   420,   421,
     422,   423,   424,   425,   426,   427,    -1,   429,   430,    -1,
      -1,    -1,   434,   435,   436,   437,    -1,    -1,    -1,   441,
      -1,    -1,    -1,   445,   446,   447,   448,    -1,   450,   451,
     452,   453,   454,    -1,    -1,    -1,    -1,    -1,    -1,   461,
     462,    -1,   464,    -1,    -1,   467,    -1,    -1,   470,   471,
     472,    -1,    -1,   475,   476,    -1,   478,   479,   480,   481,
     482,    -1,    -1,   485,   486,   487,   488,    -1,   490,   491,
      -1,    -1,   494,   495,   496,    -1,    -1,   499,   500,    -1,
     502,   503,   504,   505,    -1,    -1,    -1,    -1,    -1,   511,
     512,    -1,    -1,    -1,   516,   517,   518,   519,    -1,   521,
     522,    -1,   524,   525,    -1,   527,   528,    -1,    -1,   531,
      -1,    -1,   534,    -1,   536,    -1,   538,   539,    -1,    -1,
      -1,    -1,    -1,    -1,   546,    -1,    -1,   549,    -1,    -1,
      -1,   553,   554,   555,   556,    -1,    -1,    -1,    -1,   561,
     562,    -1,   564,   565,    -1,     5,   568,     7,     8,     9,
      10,    11,   574,    -1,    -1,    -1,    -1,    17,    -1,    -1,
      20,    -1,    22,    23,    24,    25,    26,    27,    28,    -1,
      30,    -1,    -1,    -1,    34,    -1,    -1,    -1,    38,    -1,
      -1,    41,    42,    43,    -1,    45,    -1,    47,    48,    -1,
      -1,    51,    -1,    -1,    54,    -1,    56,    57,    -1,    59,
      -1,    61,    62,    63,    64,    65,    -1,    67,    68,    -1,
      70,    71,    72,    73,    74,    75,    76,    -1,    78,    79,
      -1,    81,    82,    -1,    84,    -1,    -1,    87,    -1,    -1,
      90,    -1,    -1,    -1,    -1,    -1,    -1,    97,    98,    99,
      -1,    -1,   102,    -1,    -1,    -1,    -1,   107,   108,    -1,
      -1,    -1,    -1,   113,    -1,   115,    -1,    -1,    -1,   119,
      -1,   121,   122,   123,   124,    -1,    -1,    -1,   128,    -1,
      -1,   131,   132,   133,    -1,    -1,    -1,   137,    -1,   139,
     140,    -1,   142,   143,   144,    -1,    -1,   147,    -1,   149,
     150,   151,   152,   153,    -1,    -1,   156,   157,   158,    -1,
      -1,   161,   162,    -1,   164,   165,   166,    -1,    -1,   169,
      -1,    -1,    -1,   173,   174,    -1,   176,    -1,   178,    -1,
     180,   181,   182,   183,    -1,   185,    -1,    -1,    -1,   189,
     190,    -1,   192,    -1,    -1,   195,   196,    -1,    -1,    -1,
     200,   201,   202,   203,    -1,    -1,   206,   207,    -1,    -1,
     210,    -1,   212,    -1,    -1,    -1,   216,   217,    -1,    -1,
      -1,   221,    -1,   223,   224,    -1,   226,   227,    -1,    -1,
      -1,   231,    -1,    -1,   234,   235,    -1,    -1,   238,    -1,
      -1,   241,   242,    -1,    -1,    -1,    -1,    -1,   248,   249,
      -1,   251,    -1,   253,    -1,   255,   256,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   264,   265,   266,   267,   268,   269,
     270,   271,   272,   273,   274,   275,   276,    -1,   278,   279,
      -1,   281,   282,   283,   284,    -1,   286,   287,   288,    -1,
      -1,    -1,   292,   293,   294,   295,   296,    -1,    -1,   299,
     300,    -1,   302,    -1,   304,    -1,   306,   307,   308,   309,
     310,   311,   312,   313,    -1,    -1,   316,   317,    -1,    -1,
     320,   321,   322,   323,    -1,    -1,    -1,   327,   328,    -1,
      -1,    -1,    -1,   333,   334,   335,    -1,   337,   338,   339,
      -1,   341,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   351,   352,   353,    -1,   355,   356,   357,   358,   359,
     360,   361,   362,   363,   364,   365,   366,    -1,    -1,   369,
     370,   371,    -1,   373,    -1,   375,   376,   377,   378,    -1,
     380,   381,   382,    -1,    -1,   385,    -1,    -1,    -1,   389,
     390,   391,   392,   393,    -1,    -1,   396,   397,   398,    -1,
     400,   401,    -1,   403,   404,   405,    -1,    -1,   408,    -1,
     410,   411,   412,    -1,   414,   415,    -1,    -1,    -1,   419,
     420,   421,   422,   423,   424,   425,   426,   427,    -1,   429,
     430,    -1,    -1,    -1,   434,   435,   436,   437,    -1,    -1,
      -1,   441,    -1,    -1,    -1,   445,   446,   447,   448,    -1,
     450,   451,   452,   453,   454,    -1,    -1,    -1,    -1,    -1,
      -1,   461,   462,    -1,   464,    -1,    -1,   467,    -1,    -1,
     470,   471,   472,    -1,    -1,   475,   476,    -1,   478,   479,
     480,   481,   482,    -1,    -1,   485,   486,   487,   488,    -1,
     490,   491,    -1,    -1,   494,   495,   496,    -1,    -1,   499,
     500,    -1,   502,   503,   504,   505,    -1,    -1,    -1,    -1,
      -1,   511,   512,    -1,    -1,    -1,   516,   517,   518,   519,
      -1,   521,   522,    -1,   524,   525,    -1,   527,   528,    -1,
      -1,   531,    -1,    -1,   534,    -1,   536,    -1,   538,   539,
      -1,    -1,    -1,    -1,    -1,    -1,   546,    -1,    -1,   549,
      -1,    -1,    -1,   553,   554,   555,   556,    -1,    -1,    -1,
      -1,   561,   562,    -1,   564,   565,    -1,     5,   568,     7,
       8,     9,    10,    11,   574,    -1,    -1,    -1,    -1,    17,
      -1,    -1,    20,    -1,    22,    23,    24,    25,    26,    27,
      28,    -1,    30,    -1,    -1,    -1,    34,    -1,    -1,    -1,
      38,    -1,    -1,    41,    42,    43,    -1,    45,    -1,    47,
      48,    -1,    -1,    51,    -1,    -1,    54,    -1,    56,    57,
      -1,    59,    -1,    61,    62,    63,    64,    65,    -1,    67,
      68,    -1,    70,    71,    72,    73,    74,    75,    76,    -1,
      78,    79,    -1,    81,    82,    -1,    84,    -1,    -1,    87,
      -1,    -1,    90,    -1,    -1,    -1,    -1,    -1,    -1,    97,
      98,    99,    -1,    -1,   102,    -1,    -1,    -1,    -1,   107,
     108,    -1,    -1,    -1,    -1,   113,    -1,   115,    -1,    -1,
      -1,   119,    -1,   121,   122,   123,   124,    -1,    -1,    -1,
     128,    -1,    -1,   131,   132,   133,    -1,    -1,    -1,   137,
      -1,   139,   140,    -1,   142,   143,   144,    -1,    -1,   147,
      -1,   149,   150,   151,   152,   153,    -1,    -1,   156,   157,
     158,    -1,    -1,   161,   162,    -1,   164,   165,   166,    -1,
      -1,   169,    -1,    -1,    -1,   173,   174,    -1,   176,    -1,
     178,    -1,   180,   181,   182,   183,    -1,   185,    -1,    -1,
      -1,   189,   190,    -1,   192,    -1,    -1,   195,   196,    -1,
      -1,    -1,   200,   201,   202,   203,    -1,    -1,   206,   207,
      -1,    -1,   210,    -1,   212,    -1,    -1,    -1,   216,   217,
      -1,    -1,    -1,   221,    -1,   223,   224,    -1,   226,   227,
      -1,    -1,    -1,   231,    -1,    -1,   234,   235,    -1,    -1,
     238,    -1,    -1,   241,   242,    -1,    -1,    -1,    -1,    -1,
     248,   249,    -1,   251,    -1,   253,    -1,   255,   256,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   264,   265,   266,   267,
     268,   269,   270,   271,   272,   273,   274,   275,   276,    -1,
     278,   279,    -1,   281,   282,   283,   284,    -1,   286,   287,
     288,    -1,    -1,    -1,   292,   293,   294,   295,   296,    -1,
      -1,   299,   300,    -1,   302,    -1,   304,    -1,   306,   307,
     308,   309,   310,   311,   312,   313,    -1,    -1,   316,   317,
      -1,    -1,   320,   321,   322,   323,    -1,    -1,    -1,   327,
     328,    -1,    -1,    -1,    -1,   333,   334,   335,    -1,   337,
     338,   339,    -1,   341,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   351,   352,   353,    -1,   355,   356,   357,
     358,   359,   360,   361,   362,   363,   364,   365,   366,    -1,
      -1,   369,   370,   371,    -1,   373,    -1,   375,   376,   377,
     378,    -1,   380,   381,   382,    -1,    -1,   385,    -1,    -1,
      -1,   389,   390,   391,   392,   393,    -1,    -1,   396,   397,
     398,    -1,   400,   401,    -1,   403,   404,   405,    -1,    -1,
     408,    -1,   410,   411,   412,    -1,   414,   415,    -1,    -1,
      -1,   419,   420,   421,   422,   423,   424,   425,   426,   427,
      -1,   429,   430,    -1,    -1,    -1,   434,   435,   436,   437,
      -1,    -1,    -1,   441,    -1,    -1,    -1,   445,   446,   447,
     448,    -1,   450,   451,   452,   453,   454,    -1,    -1,    -1,
      -1,    -1,    -1,   461,   462,    -1,   464,    -1,    -1,   467,
      -1,    -1,   470,   471,   472,    -1,    -1,   475,   476,    -1,
     478,   479,   480,   481,   482,    -1,    -1,   485,   486,   487,
     488,    -1,   490,   491,    -1,    -1,   494,   495,   496,    -1,
      -1,   499,   500,    -1,   502,   503,   504,   505,    -1,    -1,
      -1,    -1,    -1,   511,   512,    -1,    -1,    -1,   516,   517,
     518,   519,    -1,   521,   522,    -1,   524,   525,    -1,   527,
     528,    -1,    -1,   531,    -1,    -1,   534,    -1,   536,    -1,
     538,   539,    -1,    -1,    -1,    -1,    -1,    -1,   546,    -1,
      -1,   549,    -1,    -1,    -1,   553,   554,   555,   556,    -1,
      -1,    -1,    -1,   561,   562,    -1,   564,   565,    -1,     5,
     568,     7,     8,     9,    10,    11,   574,    -1,    -1,    -1,
      -1,    17,    -1,    -1,    20,    -1,    22,    23,    24,    25,
      26,    27,    28,    -1,    30,    -1,    -1,    -1,    34,    -1,
      -1,    -1,    38,    -1,    -1,    41,    42,    43,    -1,    45,
      -1,    47,    48,    -1,    -1,    51,    -1,    -1,    54,    -1,
      56,    57,    -1,    59,    -1,    61,    62,    63,    64,    65,
      -1,    67,    68,    -1,    70,    71,    72,    73,    74,    75,
      76,    -1,    78,    79,    -1,    81,    82,    -1,    84,    -1,
      -1,    87,    -1,    -1,    90,    -1,    -1,    -1,    -1,    -1,
      -1,    97,    98,    99,    -1,    -1,   102,    -1,    -1,    -1,
      -1,   107,   108,    -1,    -1,    -1,    -1,   113,    -1,   115,
      -1,    -1,    -1,   119,    -1,   121,   122,   123,   124,    -1,
      -1,    -1,   128,    -1,    -1,   131,   132,   133,    -1,    -1,
      -1,   137,    -1,   139,   140,    -1,   142,   143,   144,    -1,
      -1,   147,    -1,   149,   150,   151,   152,   153,    -1,    -1,
     156,   157,   158,    -1,    -1,   161,   162,    -1,   164,   165,
     166,    -1,    -1,   169,    -1,    -1,    -1,   173,   174,    -1,
     176,    -1,   178,    -1,   180,   181,   182,   183,    -1,   185,
      -1,    -1,    -1,   189,   190,    -1,   192,    -1,    -1,   195,
     196,    -1,    -1,    -1,   200,   201,   202,   203,    -1,    -1,
     206,   207,    -1,    -1,   210,    -1,   212,    -1,    -1,    -1,
     216,   217,    -1,    -1,    -1,   221,    -1,   223,   224,    -1,
     226,   227,    -1,    -1,    -1,   231,    -1,    -1,   234,   235,
      -1,    -1,   238,    -1,    -1,   241,   242,    -1,    -1,    -1,
      -1,    -1,   248,   249,    -1,   251,    -1,   253,    -1,   255,
     256,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   264,   265,
     266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
     276,    -1,   278,   279,    -1,   281,   282,   283,   284,    -1,
     286,   287,   288,    -1,    -1,    -1,   292,   293,   294,   295,
     296,    -1,    -1,   299,   300,    -1,   302,    -1,   304,    -1,
     306,   307,   308,   309,   310,   311,   312,   313,    -1,    -1,
     316,   317,    -1,    -1,   320,   321,   322,   323,    -1,    -1,
      -1,   327,   328,    -1,    -1,    -1,    -1,   333,   334,   335,
      -1,   337,   338,   339,    -1,   341,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   351,   352,   353,    -1,   355,
     356,   357,   358,   359,   360,   361,   362,   363,   364,   365,
     366,    -1,    -1,   369,   370,   371,    -1,   373,    -1,   375,
     376,   377,   378,    -1,   380,   381,   382,    -1,    -1,   385,
      -1,    -1,    -1,   389,   390,   391,   392,   393,    -1,    -1,
     396,   397,   398,    -1,   400,   401,    -1,   403,   404,   405,
      -1,    -1,   408,    -1,   410,   411,   412,    -1,   414,   415,
      -1,    -1,    -1,   419,   420,   421,   422,   423,   424,   425,
     426,   427,    -1,   429,   430,    -1,    -1,    -1,   434,   435,
     436,   437,    -1,    -1,    -1,   441,    -1,    -1,    -1,   445,
     446,   447,   448,    -1,   450,   451,   452,   453,   454,    -1,
      -1,    -1,    -1,    -1,    -1,   461,   462,    -1,   464,    -1,
      -1,   467,    -1,    -1,   470,   471,   472,    -1,    -1,   475,
     476,    -1,   478,   479,   480,   481,   482,    -1,    -1,   485,
     486,   487,   488,    -1,   490,   491,    -1,    -1,   494,   495,
     496,    -1,    -1,   499,   500,    -1,   502,   503,   504,   505,
      -1,    -1,    -1,    -1,    -1,   511,   512,    -1,    -1,    -1,
     516,   517,   518,   519,    -1,   521,   522,    -1,   524,   525,
      -1,   527,   528,    -1,    -1,   531,    -1,    -1,   534,    -1,
     536,    -1,   538,   539,    -1,    -1,    -1,    -1,    -1,    -1,
     546,    -1,    -1,   549,    -1,    -1,    -1,   553,   554,   555,
     556,    -1,    -1,    -1,    -1,   561,   562,    -1,   564,   565,
      -1,     5,   568,     7,     8,     9,    10,    11,   574,    -1,
      -1,    -1,    -1,    17,    -1,    -1,    20,    -1,    22,    23,
      24,    25,    26,    27,    28,    -1,    30,    -1,    -1,    -1,
      34,    -1,    -1,    -1,    38,    -1,    -1,    41,    42,    43,
      -1,    45,    -1,    47,    48,    -1,    -1,    51,    -1,    -1,
      54,    -1,    56,    57,    -1,    59,    -1,    61,    62,    63,
      64,    65,    -1,    67,    68,    -1,    70,    71,    72,    73,
      74,    75,    76,    -1,    78,    79,    -1,    81,    82,    -1,
      84,    -1,    -1,    87,    -1,    -1,    90,    -1,    -1,    -1,
      -1,    -1,    -1,    97,    98,    99,    -1,    -1,   102,    -1,
      -1,    -1,    -1,   107,   108,   109,    -1,    -1,    -1,   113,
      -1,   115,    -1,    -1,    -1,   119,    -1,   121,   122,   123,
     124,    -1,    -1,    -1,   128,    -1,    -1,   131,   132,   133,
      -1,    -1,    -1,   137,    -1,   139,   140,    -1,   142,   143,
     144,    -1,    -1,   147,    -1,   149,   150,   151,   152,   153,
      -1,    -1,   156,   157,   158,    -1,    -1,   161,   162,    -1,
     164,   165,   166,   167,    -1,   169,    -1,    -1,    -1,   173,
     174,    -1,   176,    -1,   178,    -1,   180,   181,   182,   183,
      -1,   185,    -1,    -1,    -1,   189,   190,    -1,   192,   193,
      -1,   195,   196,    -1,    -1,    -1,   200,   201,   202,   203,
      -1,    -1,   206,   207,    -1,    -1,   210,    -1,   212,    -1,
      -1,    -1,   216,   217,    -1,    -1,    -1,   221,    -1,   223,
     224,    -1,   226,   227,    -1,    -1,    -1,   231,    -1,    -1,
     234,   235,    -1,    -1,   238,    -1,    -1,   241,   242,    -1,
      -1,    -1,    -1,    -1,   248,   249,    -1,   251,    -1,   253,
      -1,   255,   256,    -1,    -1,   259,    -1,    -1,    -1,    -1,
     264,   265,   266,   267,   268,   269,   270,   271,   272,   273,
     274,   275,   276,    -1,   278,   279,    -1,   281,   282,   283,
     284,    -1,   286,   287,   288,    -1,    -1,    -1,   292,   293,
     294,   295,   296,    -1,    -1,   299,   300,    -1,   302,    -1,
     304,    -1,   306,   307,   308,   309,   310,   311,   312,   313,
      -1,    -1,   316,   317,    -1,    -1,   320,   321,   322,   323,
     324,   325,    -1,   327,   328,    -1,    -1,   331,    -1,   333,
     334,   335,    -1,   337,   338,   339,    -1,   341,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   351,   352,   353,
      -1,   355,   356,   357,   358,   359,   360,   361,   362,   363,
     364,   365,   366,    -1,    -1,   369,   370,   371,    -1,   373,
      -1,   375,   376,   377,   378,    -1,   380,   381,   382,    -1,
      -1,   385,    -1,    -1,    -1,   389,   390,   391,   392,   393,
      -1,    -1,   396,   397,   398,    -1,   400,   401,    -1,   403,
     404,   405,    -1,    -1,   408,    -1,   410,   411,   412,    -1,
     414,   415,    -1,    -1,    -1,   419,   420,   421,   422,   423,
     424,   425,   426,   427,    -1,   429,   430,    -1,    -1,    -1,
     434,   435,   436,   437,    -1,    -1,    -1,   441,    -1,    -1,
      -1,   445,   446,   447,   448,    -1,   450,   451,   452,   453,
     454,    -1,    -1,   457,   458,   459,    -1,   461,   462,    -1,
     464,    -1,    -1,   467,    -1,    -1,   470,   471,   472,    -1,
      -1,   475,   476,    -1,   478,   479,   480,   481,   482,    -1,
      -1,   485,   486,   487,   488,    -1,   490,   491,    -1,    -1,
     494,   495,   496,    -1,    -1,   499,   500,    -1,   502,   503,
     504,   505,    -1,    -1,    -1,    -1,    -1,   511,   512,    -1,
      -1,    -1,   516,   517,   518,   519,   520,   521,   522,    -1,
     524,   525,    -1,   527,   528,    -1,    -1,   531,    -1,    -1,
     534,    -1,   536,    -1,   538,   539,    -1,    -1,    -1,    -1,
      -1,    -1,   546,    -1,    -1,   549,    -1,    -1,    -1,   553,
     554,   555,   556,    -1,    -1,    -1,    -1,   561,   562,    -1,
     564,   565,    -1,     5,   568,     7,     8,     9,    10,    11,
      -1,    -1,    -1,    -1,    -1,    17,    -1,    -1,    20,    -1,
      22,    23,    24,    25,    26,    27,    28,    -1,    30,    -1,
      -1,    33,    34,    -1,    -1,    -1,    38,    -1,    -1,    41,
      42,    43,    -1,    45,    -1,    47,    48,    -1,    -1,    51,
      -1,    -1,    54,    -1,    56,    57,    -1,    59,    -1,    61,
      62,    63,    64,    65,    -1,    67,    68,    -1,    70,    71,
      72,    73,    74,    75,    76,    -1,    78,    79,    -1,    81,
      82,    -1,    84,    -1,    -1,    87,    -1,    -1,    90,    -1,
      -1,    -1,    -1,    -1,    -1,    97,    98,    99,    -1,    -1,
     102,    -1,    -1,    -1,    -1,   107,   108,    -1,    -1,    -1,
     112,   113,    -1,   115,    -1,    -1,    -1,   119,    -1,   121,
     122,   123,   124,    -1,    -1,    -1,   128,    -1,    -1,   131,
     132,   133,    -1,    -1,    -1,   137,    -1,   139,   140,    -1,
     142,   143,   144,   145,    -1,   147,    -1,   149,   150,   151,
     152,   153,    -1,    -1,   156,   157,   158,    -1,    -1,   161,
     162,    -1,   164,   165,   166,    -1,    -1,   169,    -1,    -1,
      -1,   173,   174,    -1,   176,    -1,   178,    -1,   180,   181,
     182,   183,    -1,   185,    -1,    -1,    -1,   189,   190,    -1,
     192,    -1,    -1,   195,   196,    -1,    -1,    -1,   200,   201,
     202,   203,    -1,    -1,   206,   207,    -1,    -1,   210,    -1,
     212,    -1,    -1,    -1,   216,   217,    -1,    -1,    -1,   221,
      -1,   223,   224,    -1,   226,   227,    -1,    -1,    -1,   231,
      -1,    -1,   234,   235,    -1,    -1,   238,    -1,    -1,   241,
     242,   243,    -1,    -1,    -1,    -1,   248,   249,    -1,   251,
      -1,   253,    -1,   255,   256,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   264,   265,   266,   267,   268,   269,   270,   271,
     272,   273,   274,   275,   276,    -1,   278,   279,    -1,   281,
     282,   283,   284,    -1,   286,   287,   288,    -1,    -1,    -1,
     292,   293,   294,   295,   296,    -1,    -1,   299,   300,    -1,
     302,    -1,   304,    -1,   306,   307,   308,   309,   310,   311,
     312,   313,    -1,    -1,   316,   317,    -1,    -1,   320,   321,
     322,   323,    -1,    -1,    -1,   327,   328,    -1,    -1,    -1,
      -1,   333,   334,   335,    -1,   337,   338,   339,    -1,   341,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   351,
     352,   353,    -1,   355,   356,   357,   358,   359,   360,   361,
     362,   363,   364,   365,   366,    -1,    -1,   369,   370,   371,
      -1,   373,    -1,   375,   376,   377,   378,    -1,   380,   381,
     382,    -1,    -1,   385,    -1,    -1,    -1,   389,   390,   391,
     392,   393,    -1,    -1,   396,   397,   398,    -1,   400,   401,
      -1,   403,   404,   405,    -1,    -1,   408,    -1,   410,   411,
     412,    -1,   414,   415,    -1,    -1,    -1,   419,   420,   421,
     422,   423,   424,   425,   426,   427,    -1,   429,   430,    -1,
      -1,    -1,   434,   435,   436,   437,    -1,    -1,   440,   441,
      -1,    -1,    -1,   445,   446,   447,   448,    -1,   450,   451,
     452,   453,   454,    -1,    -1,    -1,    -1,    -1,    -1,   461,
     462,    -1,   464,    -1,    -1,   467,    -1,    -1,   470,   471,
     472,    -1,    -1,   475,   476,    -1,   478,   479,   480,   481,
     482,    -1,    -1,   485,   486,   487,   488,    -1,   490,   491,
      -1,    -1,   494,   495,   496,    -1,   498,   499,   500,    -1,
     502,   503,   504,   505,    -1,    -1,    -1,    -1,    -1,   511,
     512,    -1,    -1,    -1,   516,   517,   518,   519,    -1,   521,
     522,    -1,   524,   525,    -1,   527,   528,    -1,    -1,   531,
      -1,    -1,   534,    -1,   536,    -1,   538,   539,    -1,    -1,
      -1,    -1,    -1,    -1,   546,    -1,    -1,   549,    -1,    -1,
      -1,   553,   554,   555,   556,    -1,    -1,    -1,    -1,   561,
     562,    -1,   564,   565,    -1,     5,   568,     7,     8,     9,
      10,    11,    -1,    -1,    -1,    -1,    -1,    17,    -1,    -1,
      20,    -1,    22,    23,    24,    25,    26,    27,    28,    -1,
      30,    -1,    -1,    33,    34,    -1,    -1,    -1,    38,    -1,
      -1,    41,    42,    43,    -1,    45,    -1,    47,    48,    -1,
      -1,    51,    -1,    -1,    54,    -1,    56,    57,    -1,    59,
      -1,    61,    62,    63,    64,    65,    -1,    67,    68,    -1,
      70,    71,    72,    73,    74,    75,    76,    -1,    78,    79,
      -1,    81,    82,    -1,    84,    -1,    -1,    87,    -1,    -1,
      90,    -1,    -1,    -1,    -1,    -1,    -1,    97,    98,    99,
      -1,    -1,   102,    -1,    -1,    -1,    -1,   107,   108,    -1,
      -1,    -1,   112,   113,    -1,   115,    -1,    -1,    -1,   119,
      -1,   121,   122,   123,   124,    -1,    -1,    -1,   128,    -1,
      -1,   131,   132,   133,    -1,    -1,    -1,   137,    -1,   139,
     140,    -1,   142,   143,   144,    -1,    -1,   147,    -1,   149,
     150,   151,   152,   153,    -1,    -1,   156,   157,   158,    -1,
      -1,   161,   162,    -1,   164,   165,   166,    -1,    -1,   169,
      -1,    -1,    -1,   173,   174,    -1,   176,    -1,   178,    -1,
     180,   181,   182,   183,    -1,   185,    -1,    -1,    -1,   189,
     190,    -1,   192,    -1,    -1,   195,   196,    -1,    -1,    -1,
     200,   201,   202,   203,    -1,    -1,   206,   207,    -1,    -1,
     210,    -1,   212,    -1,    -1,    -1,   216,   217,    -1,    -1,
      -1,   221,    -1,   223,   224,    -1,   226,   227,    -1,    -1,
      -1,   231,    -1,    -1,   234,   235,    -1,    -1,   238,    -1,
      -1,   241,   242,   243,    -1,    -1,    -1,    -1,   248,   249,
      -1,   251,    -1,   253,    -1,   255,   256,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   264,   265,   266,   267,   268,   269,
     270,   271,   272,   273,   274,   275,   276,    -1,   278,   279,
      -1,   281,   282,   283,   284,    -1,   286,   287,   288,    -1,
      -1,    -1,   292,   293,   294,   295,   296,    -1,    -1,   299,
     300,    -1,   302,    -1,   304,    -1,   306,   307,   308,   309,
     310,   311,   312,   313,    -1,    -1,   316,   317,    -1,    -1,
     320,   321,   322,   323,    -1,    -1,    -1,   327,   328,    -1,
      -1,    -1,    -1,   333,   334,   335,    -1,   337,   338,   339,
      -1,   341,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   351,   352,   353,    -1,   355,   356,   357,   358,   359,
     360,   361,   362,   363,   364,   365,   366,    -1,    -1,   369,
     370,   371,    -1,   373,    -1,   375,   376,   377,   378,    -1,
     380,   381,   382,    -1,    -1,   385,    -1,    -1,    -1,   389,
     390,   391,   392,   393,    -1,    -1,   396,   397,   398,    -1,
     400,   401,    -1,   403,   404,   405,    -1,    -1,   408,    -1,
     410,   411,   412,    -1,   414,   415,    -1,    -1,    -1,   419,
     420,   421,   422,   423,   424,   425,   426,   427,    -1,   429,
     430,    -1,    -1,    -1,   434,   435,   436,   437,    -1,    -1,
      -1,   441,    -1,    -1,    -1,   445,   446,   447,   448,    -1,
     450,   451,   452,   453,   454,    -1,    -1,    -1,    -1,    -1,
      -1,   461,   462,    -1,   464,    -1,    -1,   467,    -1,    -1,
     470,   471,   472,    -1,    -1,   475,   476,    -1,   478,   479,
     480,   481,   482,    -1,    -1,   485,   486,   487,   488,    -1,
     490,   491,    -1,    -1,   494,   495,   496,    -1,   498,   499,
     500,    -1,   502,   503,   504,   505,    -1,    -1,    -1,    -1,
      -1,   511,   512,    -1,    -1,    -1,   516,   517,   518,   519,
      -1,   521,   522,    -1,   524,   525,    -1,   527,   528,    -1,
      -1,   531,    -1,    -1,   534,    -1,   536,    -1,   538,   539,
      -1,    -1,    -1,    -1,    -1,    -1,   546,    -1,    -1,   549,
      -1,    -1,    -1,   553,   554,   555,   556,    -1,    -1,    -1,
      -1,   561,   562,    -1,   564,   565,    -1,     5,   568,     7,
       8,     9,    10,    11,    -1,    -1,    -1,    -1,    -1,    17,
      -1,    -1,    20,    -1,    22,    23,    24,    25,    26,    27,
      28,    -1,    30,    -1,    -1,    33,    34,    -1,    -1,    -1,
      38,    -1,    -1,    41,    42,    43,    -1,    45,    -1,    47,
      48,    -1,    -1,    51,    -1,    -1,    54,    -1,    56,    57,
      -1,    59,    -1,    61,    62,    63,    64,    65,    -1,    67,
      68,    -1,    70,    71,    72,    73,    74,    75,    76,    -1,
      78,    79,    -1,    81,    82,    -1,    84,    -1,    -1,    87,
      -1,    -1,    90,    -1,    -1,    -1,    -1,    -1,    -1,    97,
      98,    99,    -1,    -1,   102,    -1,    -1,    -1,    -1,   107,
     108,    -1,    -1,    -1,   112,   113,    -1,   115,    -1,    -1,
      -1,   119,    -1,   121,   122,   123,   124,    -1,    -1,    -1,
     128,    -1,    -1,   131,   132,   133,    -1,    -1,    -1,   137,
      -1,   139,   140,    -1,   142,   143,   144,    -1,    -1,   147,
      -1,   149,   150,   151,   152,   153,    -1,    -1,   156,   157,
     158,    -1,    -1,   161,   162,    -1,   164,   165,   166,    -1,
      -1,   169,    -1,    -1,    -1,   173,   174,    -1,   176,    -1,
     178,    -1,   180,   181,   182,   183,    -1,   185,    -1,    -1,
      -1,   189,   190,    -1,   192,    -1,    -1,   195,   196,    -1,
      -1,    -1,   200,   201,   202,   203,    -1,    -1,   206,   207,
      -1,    -1,   210,    -1,   212,    -1,    -1,    -1,   216,   217,
      -1,    -1,    -1,   221,    -1,   223,   224,    -1,   226,   227,
      -1,    -1,    -1,   231,    -1,    -1,   234,   235,    -1,    -1,
     238,    -1,    -1,   241,   242,   243,    -1,    -1,    -1,    -1,
     248,   249,    -1,   251,    -1,   253,    -1,   255,   256,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   264,   265,   266,   267,
     268,   269,   270,   271,   272,   273,   274,   275,   276,    -1,
     278,   279,    -1,   281,   282,   283,   284,    -1,   286,   287,
     288,    -1,    -1,    -1,   292,   293,   294,   295,   296,    -1,
      -1,   299,   300,    -1,   302,    -1,   304,    -1,   306,   307,
     308,   309,   310,   311,   312,   313,    -1,    -1,   316,   317,
      -1,    -1,   320,   321,   322,   323,    -1,    -1,    -1,   327,
     328,    -1,    -1,    -1,    -1,   333,   334,   335,    -1,   337,
     338,   339,    -1,   341,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   351,   352,   353,    -1,   355,   356,   357,
     358,   359,   360,   361,   362,   363,   364,   365,   366,    -1,
      -1,   369,   370,   371,    -1,   373,    -1,   375,   376,   377,
     378,    -1,   380,   381,   382,    -1,    -1,   385,    -1,    -1,
      -1,   389,   390,   391,   392,   393,    -1,    -1,   396,   397,
     398,    -1,   400,   401,    -1,   403,   404,   405,    -1,    -1,
     408,    -1,   410,   411,   412,    -1,   414,   415,    -1,    -1,
      -1,   419,   420,   421,   422,   423,   424,   425,   426,   427,
      -1,   429,   430,    -1,    -1,    -1,   434,   435,   436,   437,
      -1,    -1,    -1,   441,    -1,    -1,    -1,   445,   446,   447,
     448,    -1,   450,   451,   452,   453,   454,    -1,    -1,    -1,
      -1,    -1,    -1,   461,   462,    -1,   464,    -1,    -1,   467,
      -1,    -1,   470,   471,   472,    -1,    -1,   475,   476,    -1,
     478,   479,   480,   481,   482,    -1,    -1,   485,   486,   487,
     488,    -1,   490,   491,    -1,    -1,   494,   495,   496,    -1,
     498,   499,   500,    -1,   502,   503,   504,   505,    -1,    -1,
      -1,    -1,    -1,   511,   512,    -1,    -1,    -1,   516,   517,
     518,   519,    -1,   521,   522,    -1,   524,   525,    -1,   527,
     528,    -1,    -1,   531,    -1,    -1,   534,    -1,   536,    -1,
     538,   539,    -1,    -1,    -1,    -1,    -1,    -1,   546,    -1,
      -1,   549,    -1,    -1,    -1,   553,   554,   555,   556,    -1,
      -1,    -1,    -1,   561,   562,    -1,   564,   565,    -1,     5,
     568,     7,     8,     9,    10,    11,    -1,    -1,    -1,    -1,
      -1,    17,    -1,    -1,    20,    -1,    22,    23,    24,    25,
      26,    27,    28,    -1,    30,    -1,    -1,    -1,    34,    -1,
      -1,    -1,    38,    -1,    -1,    41,    42,    43,    -1,    45,
      -1,    47,    48,    -1,    -1,    51,    -1,    -1,    54,    -1,
      56,    57,    -1,    59,    -1,    61,    62,    63,    64,    65,
      -1,    67,    68,    -1,    70,    71,    72,    73,    74,    75,
      76,    -1,    78,    79,    -1,    81,    82,    -1,    84,    -1,
      -1,    87,    -1,    -1,    90,    -1,    92,    -1,    -1,    -1,
      -1,    97,    98,    99,    -1,    -1,   102,    -1,    -1,    -1,
      -1,   107,   108,    -1,    -1,    -1,    -1,   113,    -1,   115,
      -1,    -1,    -1,   119,    -1,   121,   122,   123,   124,    -1,
      -1,    -1,   128,    -1,    -1,   131,   132,   133,    -1,    -1,
      -1,   137,    -1,   139,   140,    -1,   142,   143,   144,    -1,
      -1,   147,    -1,   149,   150,   151,   152,   153,    -1,    -1,
     156,   157,   158,    -1,    -1,   161,   162,    -1,   164,   165,
     166,    -1,    -1,   169,    -1,    -1,    -1,   173,   174,    -1,
     176,    -1,   178,    -1,   180,   181,   182,   183,    -1,   185,
      -1,    -1,    -1,   189,   190,    -1,   192,    -1,    -1,   195,
     196,    -1,    -1,    -1,   200,   201,   202,   203,    -1,    -1,
     206,   207,    -1,    -1,   210,    -1,   212,    -1,    -1,    -1,
     216,   217,    -1,    -1,    -1,   221,    -1,   223,   224,    -1,
     226,   227,    -1,    -1,    -1,   231,    -1,    -1,   234,   235,
      -1,    -1,   238,    -1,    -1,   241,   242,   243,    -1,    -1,
      -1,    -1,   248,   249,    -1,   251,    -1,   253,    -1,   255,
     256,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   264,   265,
     266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
     276,    -1,   278,   279,    -1,   281,   282,   283,   284,    -1,
     286,   287,   288,    -1,    -1,    -1,   292,   293,   294,   295,
     296,    -1,    -1,   299,   300,    -1,   302,    -1,   304,    -1,
     306,   307,   308,   309,   310,   311,   312,   313,    -1,    -1,
     316,   317,    -1,    -1,   320,   321,   322,   323,    -1,    -1,
      -1,   327,   328,    -1,    -1,    -1,    -1,   333,   334,   335,
      -1,   337,   338,   339,    -1,   341,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   351,   352,   353,    -1,   355,
     356,   357,   358,   359,   360,   361,   362,   363,   364,   365,
     366,    -1,    -1,   369,   370,   371,    -1,   373,    -1,   375,
     376,   377,   378,    -1,   380,   381,   382,    -1,    -1,   385,
      -1,    -1,    -1,   389,   390,   391,   392,   393,    -1,    -1,
     396,   397,   398,    -1,   400,   401,    -1,   403,   404,   405,
      -1,    -1,   408,    -1,   410,   411,   412,    -1,   414,   415,
      -1,    -1,    -1,   419,   420,   421,   422,   423,   424,   425,
     426,   427,    -1,   429,   430,    -1,    -1,    -1,   434,   435,
     436,   437,    -1,    -1,    -1,   441,    -1,    -1,    -1,   445,
     446,   447,   448,    -1,   450,   451,   452,   453,   454,    -1,
      -1,    -1,    -1,    -1,    -1,   461,   462,    -1,   464,    -1,
      -1,   467,    -1,    -1,   470,   471,   472,    -1,    -1,   475,
     476,    -1,   478,   479,   480,   481,   482,    -1,    -1,   485,
     486,   487,   488,    -1,   490,   491,    -1,    -1,   494,   495,
     496,    -1,   498,   499,   500,    -1,   502,   503,   504,   505,
      -1,    -1,    -1,    -1,    -1,   511,   512,    -1,    -1,    -1,
     516,   517,   518,   519,    -1,   521,   522,    -1,   524,   525,
      -1,   527,   528,    -1,    -1,   531,    -1,    -1,   534,    -1,
     536,    -1,   538,   539,    -1,    -1,    -1,    -1,    -1,    -1,
     546,    -1,    -1,   549,    -1,    -1,    -1,   553,   554,   555,
     556,    -1,    -1,    -1,    -1,   561,   562,    -1,   564,   565,
      -1,     5,   568,     7,     8,     9,    10,    11,    12,    -1,
      -1,    -1,    -1,    17,    -1,    -1,    20,    -1,    22,    23,
      24,    25,    26,    27,    28,    -1,    30,    -1,    -1,    -1,
      34,    -1,    -1,    -1,    38,    -1,    -1,    41,    42,    43,
      -1,    45,    -1,    47,    48,    -1,    -1,    51,    -1,    -1,
      54,    -1,    56,    57,    -1,    59,    -1,    61,    62,    63,
      64,    65,    -1,    67,    68,    -1,    70,    71,    72,    73,
      74,    75,    76,    -1,    78,    79,    -1,    81,    82,    -1,
      84,    -1,    -1,    87,    -1,    -1,    90,    -1,    -1,    -1,
      -1,    -1,    -1,    97,    98,    99,    -1,    -1,   102,    -1,
      -1,    -1,    -1,   107,   108,    -1,    -1,    -1,    -1,   113,
      -1,   115,    -1,    -1,    -1,   119,    -1,   121,   122,   123,
     124,    -1,    -1,    -1,   128,    -1,    -1,   131,   132,   133,
      -1,    -1,    -1,   137,    -1,   139,   140,    -1,   142,   143,
     144,    -1,    -1,   147,    -1,   149,   150,   151,   152,   153,
      -1,    -1,   156,   157,   158,    -1,    -1,   161,   162,    -1,
     164,   165,   166,    -1,    -1,   169,    -1,    -1,    -1,   173,
     174,    -1,   176,    -1,   178,    -1,   180,   181,   182,   183,
      -1,   185,    -1,    -1,    -1,   189,   190,    -1,   192,    -1,
      -1,   195,   196,    -1,    -1,    -1,   200,   201,   202,   203,
      -1,    -1,   206,   207,    -1,    -1,   210,    -1,   212,    -1,
      -1,    -1,   216,   217,    -1,    -1,    -1,   221,    -1,   223,
     224,    -1,   226,   227,    -1,    -1,    -1,   231,    -1,    -1,
     234,   235,    -1,    -1,   238,    -1,    -1,   241,   242,   243,
      -1,    -1,    -1,    -1,   248,   249,    -1,   251,    -1,   253,
      -1,   255,   256,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     264,   265,   266,   267,   268,   269,   270,   271,   272,   273,
     274,   275,   276,    -1,   278,   279,    -1,   281,   282,   283,
     284,    -1,   286,   287,   288,    -1,    -1,    -1,   292,   293,
     294,   295,   296,    -1,    -1,   299,   300,    -1,   302,    -1,
     304,    -1,   306,   307,   308,   309,   310,   311,   312,   313,
      -1,    -1,   316,   317,    -1,    -1,   320,   321,   322,   323,
      -1,    -1,    -1,   327,   328,    -1,    -1,    -1,    -1,   333,
     334,   335,    -1,   337,   338,   339,    -1,   341,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   351,   352,   353,
      -1,   355,   356,   357,   358,   359,   360,   361,   362,   363,
     364,   365,   366,    -1,    -1,   369,   370,   371,    -1,   373,
      -1,   375,   376,   377,   378,    -1,   380,   381,   382,    -1,
      -1,   385,    -1,    -1,    -1,   389,   390,   391,   392,   393,
      -1,    -1,   396,   397,   398,    -1,   400,   401,    -1,   403,
     404,   405,    -1,    -1,   408,    -1,   410,   411,   412,    -1,
     414,   415,    -1,    -1,    -1,   419,   420,   421,   422,   423,
     424,   425,   426,   427,    -1,   429,   430,    -1,    -1,    -1,
     434,   435,   436,   437,    -1,    -1,    -1,   441,    -1,    -1,
      -1,   445,   446,   447,   448,    -1,   450,   451,   452,   453,
     454,    -1,    -1,    -1,    -1,    -1,    -1,   461,   462,    -1,
     464,    -1,    -1,   467,    -1,    -1,   470,   471,   472,    -1,
      -1,   475,   476,    -1,   478,   479,   480,   481,   482,    -1,
      -1,   485,   486,   487,   488,    -1,   490,   491,    -1,    -1,
     494,   495,   496,    -1,   498,   499,   500,    -1,   502,   503,
     504,   505,    -1,    -1,    -1,    -1,    -1,   511,   512,    -1,
      -1,    -1,   516,   517,   518,   519,    -1,   521,   522,    -1,
     524,   525,    -1,   527,   528,    -1,    -1,   531,    -1,    -1,
     534,    -1,   536,    -1,   538,   539,    -1,    -1,    -1,    -1,
      -1,    -1,   546,    -1,    -1,   549,    -1,    -1,    -1,   553,
     554,   555,   556,    -1,    -1,    -1,    -1,   561,   562,    -1,
     564,   565,    -1,     5,   568,     7,     8,     9,    10,    11,
      -1,    -1,    -1,    -1,    -1,    17,    -1,    -1,    20,    -1,
      22,    23,    24,    25,    26,    27,    28,    -1,    30,    -1,
      -1,    -1,    34,    35,    -1,    -1,    38,    -1,    -1,    41,
      42,    43,    -1,    45,    -1,    47,    48,    -1,    -1,    51,
      -1,    -1,    54,    -1,    56,    57,    -1,    59,    -1,    61,
      62,    63,    64,    65,    -1,    67,    68,    -1,    70,    71,
      72,    73,    74,    75,    76,    -1,    78,    79,    -1,    81,
      82,    -1,    84,    -1,    -1,    87,    -1,    -1,    90,    -1,
      -1,    -1,    -1,    -1,    -1,    97,    98,    99,    -1,    -1,
     102,    -1,    -1,    -1,    -1,   107,   108,    -1,    -1,    -1,
      -1,   113,    -1,   115,    -1,    -1,    -1,   119,    -1,   121,
     122,   123,   124,    -1,    -1,    -1,   128,    -1,    -1,   131,
     132,   133,    -1,    -1,    -1,   137,    -1,   139,   140,    -1,
     142,   143,   144,    -1,    -1,   147,    -1,   149,   150,   151,
     152,   153,    -1,    -1,   156,   157,   158,    -1,    -1,   161,
     162,    -1,   164,   165,   166,    -1,    -1,   169,    -1,    -1,
      -1,   173,   174,    -1,   176,    -1,   178,    -1,   180,   181,
     182,   183,    -1,   185,    -1,    -1,    -1,   189,   190,    -1,
     192,   193,    -1,   195,   196,    -1,    -1,    -1,   200,   201,
     202,   203,    -1,    -1,   206,   207,    -1,    -1,   210,    -1,
     212,    -1,    -1,    -1,   216,   217,    -1,    -1,    -1,   221,
      -1,   223,   224,    -1,   226,   227,    -1,    -1,    -1,   231,
      -1,    -1,   234,   235,    -1,    -1,   238,    -1,    -1,   241,
     242,    -1,    -1,    -1,    -1,    -1,   248,   249,    -1,   251,
      -1,   253,    -1,   255,   256,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   264,   265,   266,   267,   268,   269,   270,   271,
     272,   273,   274,   275,   276,    -1,   278,   279,    -1,   281,
     282,   283,   284,    -1,   286,   287,   288,    -1,    -1,    -1,
     292,   293,   294,   295,   296,    -1,    -1,   299,   300,    -1,
     302,    -1,   304,    -1,   306,   307,   308,   309,   310,   311,
     312,   313,    -1,    -1,   316,   317,    -1,    -1,   320,   321,
     322,   323,    -1,    -1,    -1,   327,   328,    -1,    -1,    -1,
      -1,   333,   334,   335,    -1,   337,   338,   339,    -1,   341,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   351,
     352,   353,    -1,   355,   356,   357,   358,   359,   360,   361,
     362,   363,   364,   365,   366,    -1,    -1,   369,   370,   371,
      -1,   373,    -1,   375,   376,   377,   378,    -1,   380,   381,
     382,    -1,    -1,   385,    -1,    -1,    -1,   389,   390,   391,
     392,   393,    -1,    -1,   396,   397,   398,    -1,   400,   401,
      -1,   403,   404,   405,    -1,    -1,   408,    -1,   410,   411,
     412,    -1,   414,   415,    -1,    -1,    -1,   419,   420,   421,
     422,   423,   424,   425,   426,   427,    -1,   429,   430,    -1,
      -1,    -1,   434,   435,   436,   437,    -1,    -1,    -1,   441,
      -1,    -1,    -1,   445,   446,   447,   448,    -1,   450,   451,
     452,   453,   454,    -1,    -1,    -1,    -1,    -1,    -1,   461,
     462,    -1,   464,    -1,    -1,   467,    -1,    -1,   470,   471,
     472,    -1,    -1,   475,   476,    -1,   478,   479,   480,   481,
     482,    -1,    -1,   485,   486,   487,   488,    -1,   490,   491,
      -1,    -1,   494,   495,   496,    -1,   498,   499,   500,    -1,
     502,   503,   504,   505,    -1,    -1,    -1,    -1,    -1,   511,
     512,    -1,    -1,    -1,   516,   517,   518,   519,    -1,   521,
     522,    -1,   524,   525,    -1,   527,   528,    -1,    -1,   531,
      -1,    -1,   534,    -1,   536,    -1,   538,   539,    -1,    -1,
      -1,    -1,    -1,    -1,   546,    -1,    -1,   549,    -1,    -1,
      -1,   553,   554,   555,   556,    -1,    -1,    -1,    -1,   561,
     562,    -1,   564,   565,    -1,     5,   568,     7,     8,     9,
      10,    11,    -1,    -1,    -1,    -1,    -1,    17,    -1,    -1,
      20,    -1,    22,    23,    24,    25,    26,    27,    28,    -1,
      30,    -1,    -1,    33,    34,    -1,    -1,    -1,    38,    -1,
      -1,    41,    42,    43,    -1,    45,    -1,    47,    48,    -1,
      -1,    51,    -1,    -1,    54,    -1,    56,    57,    -1,    59,
      -1,    61,    62,    63,    64,    65,    -1,    67,    68,    -1,
      70,    71,    72,    73,    74,    75,    76,    -1,    78,    79,
      -1,    81,    82,    -1,    84,    -1,    -1,    87,    -1,    -1,
      90,    -1,    -1,    -1,    -1,    -1,    -1,    97,    98,    99,
      -1,    -1,   102,    -1,    -1,    -1,    -1,   107,   108,    -1,
      -1,    -1,    -1,   113,    -1,   115,    -1,    -1,    -1,   119,
      -1,   121,   122,   123,   124,    -1,    -1,    -1,   128,    -1,
      -1,   131,   132,   133,    -1,    -1,    -1,   137,    -1,   139,
     140,    -1,   142,   143,   144,    -1,    -1,   147,    -1,   149,
     150,   151,   152,   153,    -1,    -1,   156,   157,   158,    -1,
      -1,   161,   162,    -1,   164,   165,   166,    -1,    -1,   169,
      -1,    -1,    -1,   173,   174,    -1,   176,    -1,   178,    -1,
     180,   181,   182,   183,    -1,   185,    -1,    -1,    -1,   189,
     190,    -1,   192,    -1,    -1,   195,   196,    -1,    -1,    -1,
     200,   201,   202,   203,    -1,    -1,   206,   207,    -1,    -1,
     210,    -1,   212,    -1,    -1,    -1,   216,   217,    -1,    -1,
      -1,   221,    -1,   223,   224,    -1,   226,   227,    -1,    -1,
      -1,   231,    -1,    -1,   234,   235,    -1,    -1,   238,    -1,
      -1,   241,   242,   243,    -1,    -1,    -1,    -1,   248,   249,
      -1,   251,    -1,   253,    -1,   255,   256,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   264,   265,   266,   267,   268,   269,
     270,   271,   272,   273,   274,   275,   276,    -1,   278,   279,
      -1,   281,   282,   283,   284,    -1,   286,   287,   288,    -1,
      -1,    -1,   292,   293,   294,   295,   296,    -1,    -1,   299,
     300,    -1,   302,    -1,   304,    -1,   306,   307,   308,   309,
     310,   311,   312,   313,    -1,    -1,   316,   317,    -1,    -1,
     320,   321,   322,   323,    -1,    -1,    -1,   327,   328,    -1,
      -1,    -1,    -1,   333,   334,   335,    -1,   337,   338,   339,
      -1,   341,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   351,   352,   353,    -1,   355,   356,   357,   358,   359,
     360,   361,   362,   363,   364,   365,   366,    -1,    -1,   369,
     370,   371,    -1,   373,    -1,   375,   376,   377,   378,    -1,
     380,   381,   382,    -1,    -1,   385,    -1,    -1,    -1,   389,
     390,   391,   392,   393,    -1,    -1,   396,   397,   398,    -1,
     400,   401,    -1,   403,   404,   405,    -1,    -1,   408,    -1,
     410,   411,   412,    -1,   414,   415,    -1,    -1,    -1,   419,
     420,   421,   422,   423,   424,   425,   426,   427,    -1,   429,
     430,    -1,    -1,    -1,   434,   435,   436,   437,    -1,    -1,
      -1,   441,    -1,    -1,    -1,   445,   446,   447,   448,    -1,
     450,   451,   452,   453,   454,    -1,    -1,    -1,    -1,    -1,
      -1,   461,   462,    -1,   464,    -1,    -1,   467,    -1,    -1,
     470,   471,   472,    -1,    -1,   475,   476,    -1,   478,   479,
     480,   481,   482,    -1,    -1,   485,   486,   487,   488,    -1,
     490,   491,    -1,    -1,   494,   495,   496,    -1,   498,   499,
     500,    -1,   502,   503,   504,   505,    -1,    -1,    -1,    -1,
      -1,   511,   512,    -1,    -1,    -1,   516,   517,   518,   519,
      -1,   521,   522,    -1,   524,   525,    -1,   527,   528,    -1,
      -1,   531,    -1,    -1,   534,    -1,   536,    -1,   538,   539,
      -1,    -1,    -1,    -1,    -1,    -1,   546,    -1,    -1,   549,
      -1,    -1,    -1,   553,   554,   555,   556,    -1,    -1,    -1,
      -1,   561,   562,    -1,   564,   565,    -1,     5,   568,     7,
       8,     9,    10,    11,    -1,    -1,    -1,    -1,    -1,    17,
      -1,    -1,    20,    -1,    22,    23,    24,    25,    26,    27,
      28,    -1,    30,    -1,    -1,    -1,    34,    -1,    -1,    -1,
      38,    -1,    -1,    41,    42,    43,    -1,    45,    -1,    47,
      48,    -1,    -1,    51,    -1,    -1,    54,    -1,    56,    57,
      -1,    59,    -1,    61,    62,    63,    64,    65,    -1,    67,
      68,    -1,    70,    71,    72,    73,    74,    75,    76,    -1,
      78,    79,    -1,    81,    82,    -1,    84,    -1,    -1,    87,
      -1,    -1,    90,    -1,    -1,    -1,    -1,    -1,    -1,    97,
      98,    99,    -1,    -1,   102,    -1,    -1,    -1,    -1,   107,
     108,    -1,    -1,    -1,   112,   113,    -1,   115,    -1,    -1,
      -1,   119,    -1,   121,   122,   123,   124,    -1,    -1,    -1,
     128,    -1,    -1,   131,   132,   133,    -1,    -1,    -1,   137,
      -1,   139,   140,    -1,   142,   143,   144,    -1,    -1,   147,
      -1,   149,   150,   151,   152,   153,    -1,    -1,   156,   157,
     158,    -1,    -1,   161,   162,    -1,   164,   165,   166,    -1,
      -1,   169,    -1,    -1,    -1,   173,   174,    -1,   176,    -1,
     178,    -1,   180,   181,   182,   183,    -1,   185,    -1,    -1,
      -1,   189,   190,    -1,   192,    -1,    -1,   195,   196,    -1,
      -1,    -1,   200,   201,   202,   203,    -1,    -1,   206,   207,
      -1,    -1,   210,    -1,   212,    -1,    -1,    -1,   216,   217,
      -1,    -1,    -1,   221,    -1,   223,   224,    -1,   226,   227,
      -1,    -1,    -1,   231,    -1,    -1,   234,   235,    -1,    -1,
     238,    -1,    -1,   241,   242,   243,    -1,    -1,    -1,    -1,
     248,   249,    -1,   251,    -1,   253,    -1,   255,   256,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   264,   265,   266,   267,
     268,   269,   270,   271,   272,   273,   274,   275,   276,    -1,
     278,   279,    -1,   281,   282,   283,   284,    -1,   286,   287,
     288,    -1,    -1,    -1,   292,   293,   294,   295,   296,    -1,
      -1,   299,   300,    -1,   302,    -1,   304,    -1,   306,   307,
     308,   309,   310,   311,   312,   313,    -1,    -1,   316,   317,
      -1,    -1,   320,   321,   322,   323,    -1,    -1,    -1,   327,
     328,    -1,    -1,    -1,    -1,   333,   334,   335,    -1,   337,
     338,   339,    -1,   341,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   351,   352,   353,    -1,   355,   356,   357,
     358,   359,   360,   361,   362,   363,   364,   365,   366,    -1,
      -1,   369,   370,   371,    -1,   373,    -1,   375,   376,   377,
     378,    -1,   380,   381,   382,    -1,    -1,   385,    -1,    -1,
      -1,   389,   390,   391,   392,   393,    -1,    -1,   396,   397,
     398,    -1,   400,   401,    -1,   403,   404,   405,    -1,    -1,
     408,    -1,   410,   411,   412,    -1,   414,   415,    -1,    -1,
      -1,   419,   420,   421,   422,   423,   424,   425,   426,   427,
      -1,   429,   430,    -1,    -1,    -1,   434,   435,   436,   437,
      -1,    -1,    -1,   441,    -1,    -1,    -1,   445,   446,   447,
     448,    -1,   450,   451,   452,   453,   454,    -1,    -1,    -1,
      -1,    -1,    -1,   461,   462,    -1,   464,    -1,    -1,   467,
      -1,    -1,   470,   471,   472,    -1,    -1,   475,   476,    -1,
     478,   479,   480,   481,   482,    -1,    -1,   485,   486,   487,
     488,    -1,   490,   491,    -1,    -1,   494,   495,   496,    -1,
     498,   499,   500,    -1,   502,   503,   504,   505,    -1,    -1,
      -1,    -1,    -1,   511,   512,    -1,    -1,    -1,   516,   517,
     518,   519,    -1,   521,   522,    -1,   524,   525,    -1,   527,
     528,    -1,    -1,   531,    -1,    -1,   534,    -1,   536,    -1,
     538,   539,    -1,    -1,    -1,    -1,    -1,    -1,   546,    -1,
      -1,   549,    -1,    -1,    -1,   553,   554,   555,   556,    -1,
      -1,    -1,    -1,   561,   562,    -1,   564,   565,    -1,     5,
     568,     7,     8,     9,    10,    11,    -1,    -1,    -1,    -1,
      -1,    17,    -1,    -1,    20,    -1,    22,    23,    24,    25,
      26,    27,    28,    -1,    30,    -1,    -1,    -1,    34,    -1,
      -1,    -1,    38,    -1,    -1,    41,    42,    43,    -1,    45,
      -1,    47,    48,    -1,    -1,    51,    -1,    -1,    54,    -1,
      56,    57,    -1,    59,    -1,    61,    62,    63,    64,    65,
      -1,    67,    68,    -1,    70,    71,    72,    73,    74,    75,
      76,    -1,    78,    79,    -1,    81,    82,    -1,    84,    -1,
      -1,    87,    -1,    -1,    90,    -1,    -1,    -1,    -1,    -1,
      -1,    97,    98,    99,    -1,    -1,   102,    -1,    -1,    -1,
      -1,   107,   108,    -1,    -1,    -1,    -1,   113,    -1,   115,
      -1,    -1,    -1,   119,    -1,   121,   122,   123,   124,    -1,
      -1,    -1,   128,    -1,    -1,   131,   132,   133,    -1,    -1,
      -1,   137,    -1,   139,   140,    -1,   142,   143,   144,    -1,
      -1,   147,    -1,   149,   150,   151,   152,   153,    -1,    -1,
     156,   157,   158,    -1,    -1,   161,   162,    -1,   164,   165,
     166,    -1,    -1,   169,    -1,    -1,    -1,   173,   174,    -1,
     176,    -1,   178,    -1,   180,   181,   182,   183,    -1,   185,
      -1,    -1,    -1,   189,   190,    -1,   192,    -1,    -1,   195,
     196,    -1,    -1,    -1,   200,   201,   202,   203,    -1,    -1,
     206,   207,    -1,    -1,   210,    -1,   212,    -1,    -1,    -1,
     216,   217,    -1,    -1,    -1,   221,    -1,   223,   224,    -1,
     226,   227,    -1,    -1,    -1,   231,    -1,    -1,   234,   235,
      -1,    -1,   238,    -1,    -1,   241,   242,   243,    -1,    -1,
      -1,    -1,   248,   249,    -1,   251,    -1,   253,    -1,   255,
     256,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   264,   265,
     266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
     276,    -1,   278,   279,    -1,   281,   282,   283,   284,    -1,
     286,   287,   288,    -1,    -1,    -1,   292,   293,   294,   295,
     296,    -1,    -1,   299,   300,    -1,   302,    -1,   304,    -1,
     306,   307,   308,   309,   310,   311,   312,   313,    -1,    -1,
     316,   317,    -1,    -1,   320,   321,   322,   323,    -1,    -1,
      -1,   327,   328,    -1,    -1,    -1,    -1,   333,   334,   335,
      -1,   337,   338,   339,    -1,   341,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   351,   352,   353,    -1,   355,
     356,   357,   358,   359,   360,   361,   362,   363,   364,   365,
     366,    -1,    -1,   369,   370,   371,    -1,   373,    -1,   375,
     376,   377,   378,    -1,   380,   381,   382,    -1,    -1,   385,
      -1,    -1,    -1,   389,   390,   391,   392,   393,    -1,    -1,
     396,   397,   398,    -1,   400,   401,    -1,   403,   404,   405,
      -1,    -1,   408,    -1,   410,   411,   412,    -1,   414,   415,
      -1,    -1,    -1,   419,   420,   421,   422,   423,   424,   425,
     426,   427,    -1,   429,   430,    -1,    -1,    -1,   434,   435,
     436,   437,    -1,    -1,    -1,   441,    -1,    -1,    -1,   445,
     446,   447,   448,    -1,   450,   451,   452,   453,   454,    -1,
      -1,    -1,    -1,    -1,    -1,   461,   462,    -1,   464,    -1,
      -1,   467,    -1,    -1,   470,   471,   472,    -1,    -1,   475,
     476,    -1,   478,   479,   480,   481,   482,    -1,    -1,   485,
     486,   487,   488,    -1,   490,   491,    -1,    -1,   494,   495,
     496,    -1,   498,   499,   500,    -1,   502,   503,   504,   505,
      -1,    -1,    -1,    -1,    -1,   511,   512,    -1,    -1,    -1,
     516,   517,   518,   519,    -1,   521,   522,    -1,   524,   525,
      -1,   527,   528,    -1,    -1,   531,    -1,    -1,   534,    -1,
     536,    -1,   538,   539,    -1,    -1,    -1,    -1,    -1,    -1,
     546,    -1,    -1,   549,    -1,    -1,    -1,   553,   554,   555,
     556,    -1,    -1,    -1,    -1,   561,   562,    -1,   564,   565,
      -1,     5,   568,     7,     8,     9,    10,    11,    -1,    -1,
      -1,    -1,    -1,    17,    18,    -1,    20,    -1,    22,    23,
      24,    25,    26,    27,    28,    -1,    30,    -1,    -1,    -1,
      34,    -1,    -1,    -1,    38,    -1,    -1,    41,    42,    43,
      -1,    45,    -1,    47,    48,    -1,    -1,    51,    -1,    -1,
      54,    -1,    56,    57,    -1,    59,    -1,    61,    62,    63,
      64,    65,    -1,    67,    68,    -1,    70,    71,    72,    73,
      74,    75,    76,    -1,    78,    79,    -1,    81,    82,    -1,
      84,    -1,    -1,    87,    -1,    -1,    90,    -1,    -1,    -1,
      -1,    -1,    -1,    97,    98,    99,    -1,    -1,   102,    -1,
      -1,    -1,    -1,   107,   108,    -1,    -1,    -1,    -1,   113,
      -1,   115,    -1,    -1,    -1,   119,    -1,   121,   122,   123,
     124,    -1,    -1,    -1,   128,    -1,    -1,   131,   132,   133,
      -1,    -1,    -1,   137,    -1,   139,   140,    -1,   142,   143,
     144,    -1,    -1,   147,    -1,   149,   150,   151,   152,   153,
      -1,    -1,   156,   157,   158,    -1,    -1,   161,   162,    -1,
     164,   165,   166,    -1,    -1,   169,    -1,    -1,    -1,   173,
     174,    -1,   176,    -1,   178,    -1,   180,   181,   182,   183,
      -1,   185,    -1,    -1,    -1,   189,   190,    -1,   192,    -1,
      -1,   195,   196,    -1,    -1,    -1,   200,   201,   202,   203,
      -1,    -1,   206,   207,    -1,    -1,   210,    -1,   212,    -1,
      -1,    -1,   216,   217,    -1,    -1,    -1,   221,    -1,   223,
     224,    -1,   226,   227,    -1,    -1,    -1,   231,    -1,    -1,
     234,   235,    -1,    -1,   238,    -1,    -1,   241,   242,    -1,
      -1,    -1,    -1,    -1,   248,   249,    -1,   251,    -1,   253,
      -1,   255,   256,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     264,   265,   266,   267,   268,   269,   270,   271,   272,   273,
     274,   275,   276,    -1,   278,   279,    -1,   281,   282,   283,
     284,    -1,   286,   287,   288,    -1,    -1,    -1,   292,   293,
     294,   295,   296,    -1,    -1,   299,   300,    -1,   302,    -1,
     304,    -1,   306,   307,   308,   309,   310,   311,   312,   313,
      -1,    -1,   316,   317,    -1,    -1,   320,   321,   322,   323,
      -1,    -1,    -1,   327,   328,    -1,    -1,    -1,    -1,   333,
     334,   335,    -1,   337,   338,   339,    -1,   341,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   351,   352,   353,
      -1,   355,   356,   357,   358,   359,   360,   361,   362,   363,
     364,   365,   366,    -1,    -1,   369,   370,   371,    -1,   373,
      -1,   375,   376,   377,   378,    -1,   380,   381,   382,    -1,
      -1,   385,    -1,    -1,    -1,   389,   390,   391,   392,   393,
      -1,    -1,   396,   397,   398,    -1,   400,   401,    -1,   403,
     404,   405,    -1,    -1,   408,    -1,   410,   411,   412,    -1,
     414,   415,    -1,    -1,    -1,   419,   420,   421,   422,   423,
     424,   425,   426,   427,    -1,   429,   430,    -1,    -1,    -1,
     434,   435,   436,   437,    -1,    -1,    -1,   441,    -1,    -1,
      -1,   445,   446,   447,   448,    -1,   450,   451,   452,   453,
     454,    -1,    -1,    -1,    -1,    -1,    -1,   461,   462,    -1,
     464,    -1,    -1,   467,    -1,    -1,   470,   471,   472,    -1,
      -1,   475,   476,    -1,   478,   479,   480,   481,   482,    -1,
      -1,   485,   486,   487,   488,    -1,   490,   491,    -1,    -1,
     494,   495,   496,    -1,   498,   499,   500,    -1,   502,   503,
     504,   505,    -1,    -1,    -1,    -1,    -1,   511,   512,    -1,
      -1,    -1,   516,   517,   518,   519,    -1,   521,   522,    -1,
     524,   525,    -1,   527,   528,    -1,    -1,   531,    -1,    -1,
     534,    -1,   536,    -1,   538,   539,    -1,    -1,    -1,    -1,
      -1,    -1,   546,    -1,    -1,   549,    -1,    -1,    -1,   553,
     554,   555,   556,    -1,    -1,    -1,    -1,   561,   562,    -1,
     564,   565,    -1,     5,   568,     7,     8,     9,    10,    11,
      -1,    -1,    -1,    -1,    -1,    17,    -1,    -1,    20,    -1,
      22,    23,    24,    25,    26,    27,    28,    -1,    30,    -1,
      -1,    -1,    34,    -1,    -1,    -1,    38,    -1,    -1,    41,
      42,    43,    -1,    45,    -1,    47,    48,    -1,    -1,    51,
      -1,    -1,    54,    -1,    56,    57,    -1,    59,    -1,    61,
      62,    63,    64,    65,    -1,    67,    68,    -1,    70,    71,
      72,    73,    74,    75,    76,    -1,    78,    79,    -1,    81,
      82,    83,    84,    -1,    -1,    87,    -1,    -1,    90,    -1,
      -1,    -1,    -1,    -1,    -1,    97,    98,    99,    -1,    -1,
     102,    -1,    -1,    -1,    -1,   107,   108,    -1,    -1,    -1,
      -1,   113,    -1,   115,    -1,    -1,    -1,   119,    -1,   121,
     122,   123,   124,    -1,    -1,    -1,   128,    -1,    -1,   131,
     132,   133,    -1,    -1,    -1,   137,    -1,   139,   140,    -1,
     142,   143,   144,    -1,    -1,   147,    -1,   149,   150,   151,
     152,   153,    -1,   155,   156,   157,   158,    -1,    -1,   161,
     162,    -1,   164,   165,   166,    -1,    -1,   169,    -1,    -1,
      -1,   173,   174,    -1,   176,    -1,   178,    -1,   180,   181,
     182,   183,    -1,   185,    -1,    -1,    -1,   189,   190,    -1,
     192,    -1,    -1,   195,   196,    -1,    -1,    -1,   200,   201,
     202,   203,    -1,    -1,   206,   207,    -1,    -1,   210,    -1,
     212,    -1,    -1,    -1,   216,   217,    -1,    -1,    -1,   221,
      -1,   223,   224,    -1,   226,   227,    -1,    -1,    -1,   231,
      -1,    -1,   234,   235,    -1,    -1,   238,    -1,    -1,   241,
     242,    -1,    -1,    -1,    -1,    -1,   248,   249,    -1,   251,
      -1,   253,    -1,   255,   256,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   264,   265,   266,   267,   268,   269,   270,   271,
     272,   273,   274,   275,   276,    -1,   278,   279,    -1,   281,
     282,   283,   284,    -1,   286,   287,   288,    -1,    -1,    -1,
     292,   293,   294,   295,   296,    -1,    -1,   299,   300,    -1,
     302,    -1,   304,    -1,   306,   307,   308,   309,   310,   311,
     312,   313,    -1,    -1,   316,   317,    -1,    -1,   320,   321,
     322,   323,    -1,    -1,    -1,   327,   328,    -1,    -1,    -1,
      -1,   333,   334,   335,    -1,   337,   338,   339,    -1,   341,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   351,
     352,   353,    -1,   355,   356,   357,   358,   359,   360,   361,
     362,   363,   364,   365,   366,    -1,    -1,   369,   370,   371,
      -1,   373,    -1,   375,   376,   377,   378,    -1,   380,   381,
     382,    -1,    -1,   385,    -1,    -1,    -1,   389,   390,   391,
     392,   393,    -1,    -1,   396,   397,   398,    -1,   400,   401,
      -1,   403,   404,   405,    -1,    -1,   408,    -1,   410,   411,
     412,    -1,   414,   415,    -1,    -1,    -1,   419,   420,   421,
     422,   423,   424,   425,   426,   427,    -1,   429,   430,    -1,
      -1,    -1,   434,   435,   436,   437,    -1,    -1,    -1,   441,
      -1,    -1,    -1,   445,   446,   447,   448,    -1,   450,   451,
     452,   453,   454,    -1,    -1,    -1,    -1,    -1,    -1,   461,
     462,    -1,   464,    -1,    -1,   467,    -1,    -1,   470,   471,
     472,    -1,    -1,   475,   476,    -1,   478,   479,   480,   481,
     482,    -1,    -1,   485,   486,   487,   488,    -1,   490,   491,
      -1,    -1,   494,   495,   496,    -1,    -1,   499,   500,    -1,
     502,   503,   504,   505,    -1,    -1,    -1,    -1,    -1,   511,
     512,    -1,    -1,    -1,   516,   517,   518,   519,    -1,   521,
     522,    -1,   524,   525,    -1,   527,   528,    -1,    -1,   531,
      -1,    -1,   534,    -1,   536,    -1,   538,   539,    -1,    -1,
      -1,    -1,    -1,    -1,   546,    -1,    -1,   549,    -1,    -1,
      -1,   553,   554,   555,   556,    -1,    -1,    -1,    -1,   561,
     562,    -1,   564,   565,    -1,     5,   568,     7,     8,     9,
      10,    11,    -1,    -1,    -1,    -1,    -1,    17,    -1,    -1,
      20,    -1,    22,    23,    24,    25,    26,    27,    28,    -1,
      30,    -1,    -1,    -1,    34,    -1,    -1,    -1,    38,    -1,
      -1,    41,    42,    43,    -1,    45,    -1,    47,    48,    -1,
      -1,    51,    -1,    -1,    54,    -1,    56,    57,    -1,    59,
      -1,    61,    62,    63,    64,    65,    -1,    67,    68,    -1,
      70,    71,    72,    73,    74,    75,    76,    -1,    78,    79,
      -1,    81,    82,    -1,    84,    -1,    -1,    87,    -1,    -1,
      90,    -1,    -1,    -1,    -1,    -1,    -1,    97,    98,    99,
      -1,    -1,   102,    -1,    -1,    -1,    -1,   107,   108,    -1,
      -1,    -1,    -1,   113,    -1,   115,    -1,    -1,    -1,   119,
      -1,   121,   122,   123,   124,    -1,    -1,    -1,   128,    -1,
      -1,   131,   132,   133,    -1,    -1,    -1,   137,    -1,   139,
     140,    -1,   142,   143,   144,    -1,    -1,   147,    -1,   149,
     150,   151,   152,   153,    -1,    -1,   156,   157,   158,    -1,
      -1,   161,   162,    -1,   164,   165,   166,    -1,    -1,   169,
      -1,    -1,    -1,   173,   174,   175,   176,    -1,   178,    -1,
     180,   181,   182,   183,    -1,   185,    -1,    -1,    -1,   189,
     190,    -1,   192,    -1,    -1,   195,   196,    -1,    -1,    -1,
     200,   201,   202,   203,    -1,    -1,   206,   207,    -1,    -1,
     210,    -1,   212,    -1,    -1,    -1,   216,   217,    -1,    -1,
      -1,   221,    -1,   223,   224,    -1,   226,   227,    -1,    -1,
      -1,   231,    -1,    -1,   234,   235,    -1,    -1,   238,    -1,
      -1,   241,   242,    -1,    -1,    -1,    -1,    -1,   248,   249,
      -1,   251,    -1,   253,    -1,   255,   256,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   264,   265,   266,   267,   268,   269,
     270,   271,   272,   273,   274,   275,   276,    -1,   278,   279,
      -1,   281,   282,   283,   284,    -1,   286,   287,   288,    -1,
      -1,    -1,   292,   293,   294,   295,   296,    -1,    -1,   299,
     300,    -1,   302,    -1,   304,    -1,   306,   307,   308,   309,
     310,   311,   312,   313,    -1,    -1,   316,   317,    -1,    -1,
     320,   321,   322,   323,    -1,    -1,    -1,   327,   328,    -1,
      -1,    -1,    -1,   333,   334,   335,    -1,   337,   338,   339,
      -1,   341,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   351,   352,   353,    -1,   355,   356,   357,   358,   359,
     360,   361,   362,   363,   364,   365,   366,    -1,    -1,   369,
     370,   371,    -1,   373,    -1,   375,   376,   377,   378,    -1,
     380,   381,   382,    -1,    -1,   385,    -1,    -1,    -1,   389,
     390,   391,   392,   393,    -1,    -1,   396,   397,   398,    -1,
     400,   401,    -1,   403,   404,   405,    -1,    -1,   408,    -1,
     410,   411,   412,    -1,   414,   415,    -1,    -1,    -1,   419,
     420,   421,   422,   423,   424,   425,   426,   427,    -1,   429,
     430,    -1,    -1,    -1,   434,   435,   436,   437,    -1,    -1,
      -1,   441,    -1,    -1,    -1,   445,   446,   447,   448,    -1,
     450,   451,   452,   453,   454,    -1,    -1,    -1,    -1,    -1,
      -1,   461,   462,    -1,   464,    -1,    -1,   467,    -1,    -1,
     470,   471,   472,    -1,    -1,   475,   476,    -1,   478,   479,
     480,   481,   482,    -1,    -1,   485,   486,   487,   488,    -1,
     490,   491,    -1,    -1,   494,   495,   496,    -1,    -1,   499,
     500,    -1,   502,   503,   504,   505,    -1,    -1,    -1,    -1,
      -1,   511,   512,    -1,    -1,    -1,   516,   517,   518,   519,
      -1,   521,   522,    -1,   524,   525,    -1,   527,   528,    -1,
      -1,   531,    -1,    -1,   534,    -1,   536,    -1,   538,   539,
      -1,    -1,    -1,    -1,    -1,    -1,   546,    -1,    -1,   549,
      -1,    -1,    -1,   553,   554,   555,   556,    -1,    -1,    -1,
      -1,   561,   562,    -1,   564,   565,    -1,     5,   568,     7,
       8,     9,    10,    11,    -1,    -1,    -1,    -1,    -1,    17,
      -1,    -1,    20,    -1,    22,    23,    24,    25,    26,    27,
      28,    -1,    30,    -1,    -1,    -1,    34,    -1,    -1,    -1,
      38,    -1,    -1,    41,    42,    43,    -1,    45,    -1,    47,
      48,    -1,    -1,    51,    -1,    -1,    54,    -1,    56,    57,
      -1,    59,    -1,    61,    62,    63,    64,    65,    -1,    67,
      68,    -1,    70,    71,    72,    73,    74,    75,    76,    -1,
      78,    79,    -1,    81,    82,    -1,    84,    -1,    -1,    87,
      -1,    -1,    90,    -1,    -1,    -1,    -1,    -1,    -1,    97,
      98,    99,    -1,    -1,   102,    -1,    -1,    -1,    -1,   107,
     108,    -1,    -1,    -1,   112,   113,    -1,   115,    -1,    -1,
      -1,   119,    -1,   121,   122,   123,   124,    -1,    -1,    -1,
     128,    -1,    -1,   131,   132,   133,    -1,    -1,    -1,   137,
      -1,   139,   140,    -1,   142,   143,   144,    -1,    -1,   147,
      -1,   149,   150,   151,   152,   153,    -1,    -1,   156,   157,
     158,    -1,    -1,   161,   162,    -1,   164,   165,   166,    -1,
      -1,   169,    -1,    -1,    -1,   173,   174,    -1,   176,    -1,
     178,    -1,   180,   181,   182,   183,    -1,   185,    -1,    -1,
      -1,   189,   190,    -1,   192,    -1,    -1,   195,   196,    -1,
      -1,    -1,   200,   201,   202,   203,    -1,    -1,   206,   207,
      -1,    -1,   210,    -1,   212,    -1,    -1,    -1,   216,   217,
      -1,    -1,    -1,   221,    -1,   223,   224,    -1,   226,   227,
      -1,    -1,    -1,   231,    -1,    -1,   234,   235,    -1,    -1,
     238,    -1,    -1,   241,   242,    -1,    -1,    -1,    -1,    -1,
     248,   249,    -1,   251,    -1,   253,    -1,   255,   256,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   264,   265,   266,   267,
     268,   269,   270,   271,   272,   273,   274,   275,   276,    -1,
     278,   279,    -1,   281,   282,   283,   284,    -1,   286,   287,
     288,    -1,    -1,    -1,   292,   293,   294,   295,   296,    -1,
      -1,   299,   300,    -1,   302,    -1,   304,    -1,   306,   307,
     308,   309,   310,   311,   312,   313,    -1,    -1,   316,   317,
      -1,    -1,   320,   321,   322,   323,    -1,    -1,    -1,   327,
     328,    -1,    -1,    -1,    -1,   333,   334,   335,    -1,   337,
     338,   339,    -1,   341,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   351,   352,   353,    -1,   355,   356,   357,
     358,   359,   360,   361,   362,   363,   364,   365,   366,    -1,
      -1,   369,   370,   371,    -1,   373,    -1,   375,   376,   377,
     378,    -1,   380,   381,   382,    -1,    -1,   385,    -1,    -1,
      -1,   389,   390,   391,   392,   393,    -1,    -1,   396,   397,
     398,    -1,   400,   401,    -1,   403,   404,   405,    -1,    -1,
     408,    -1,   410,   411,   412,    -1,   414,   415,    -1,    -1,
      -1,   419,   420,   421,   422,   423,   424,   425,   426,   427,
      -1,   429,   430,    -1,    -1,    -1,   434,   435,   436,   437,
      -1,    -1,    -1,   441,    -1,    -1,    -1,   445,   446,   447,
     448,    -1,   450,   451,   452,   453,   454,    -1,    -1,    -1,
      -1,    -1,    -1,   461,   462,    -1,   464,    -1,    -1,   467,
      -1,    -1,   470,   471,   472,    -1,    -1,   475,   476,    -1,
     478,   479,   480,   481,   482,    -1,    -1,   485,   486,   487,
     488,    -1,   490,   491,    -1,    -1,   494,   495,   496,    -1,
      -1,   499,   500,    -1,   502,   503,   504,   505,    -1,    -1,
      -1,    -1,    -1,   511,   512,    -1,    -1,    -1,   516,   517,
     518,   519,    -1,   521,   522,    -1,   524,   525,    -1,   527,
     528,    -1,    -1,   531,    -1,    -1,   534,    -1,   536,    -1,
     538,   539,    -1,    -1,    -1,    -1,    -1,    -1,   546,    -1,
      -1,   549,    -1,    -1,    -1,   553,   554,   555,   556,    -1,
      -1,    -1,    -1,   561,   562,    -1,   564,   565,    -1,     5,
     568,     7,     8,     9,    10,    11,    -1,    -1,    -1,    -1,
      -1,    17,    -1,    -1,    20,    -1,    22,    23,    24,    25,
      26,    27,    28,    -1,    30,    -1,    -1,    -1,    34,    -1,
      -1,    -1,    38,    -1,    -1,    41,    42,    43,    -1,    45,
      -1,    47,    48,    -1,    -1,    51,    -1,    -1,    54,    -1,
      56,    57,    -1,    59,    -1,    61,    62,    63,    64,    65,
      -1,    67,    68,    -1,    70,    71,    72,    73,    74,    75,
      76,    -1,    78,    79,    -1,    81,    82,    -1,    84,    -1,
      -1,    87,    -1,    -1,    90,    -1,    -1,    -1,    -1,    -1,
      -1,    97,    98,    99,    -1,    -1,   102,    -1,    -1,    -1,
      -1,   107,   108,    -1,    -1,    -1,   112,   113,    -1,   115,
      -1,    -1,    -1,   119,    -1,   121,   122,   123,   124,    -1,
      -1,    -1,   128,    -1,    -1,   131,   132,   133,    -1,    -1,
      -1,   137,    -1,   139,   140,    -1,   142,   143,   144,    -1,
      -1,   147,    -1,   149,   150,   151,   152,   153,    -1,    -1,
     156,   157,   158,    -1,    -1,   161,   162,    -1,   164,   165,
     166,    -1,    -1,   169,    -1,    -1,    -1,   173,   174,    -1,
     176,    -1,   178,    -1,   180,   181,   182,   183,    -1,   185,
      -1,    -1,    -1,   189,   190,    -1,   192,    -1,    -1,   195,
     196,    -1,    -1,    -1,   200,   201,   202,   203,    -1,    -1,
     206,   207,    -1,    -1,   210,    -1,   212,    -1,    -1,    -1,
     216,   217,    -1,    -1,    -1,   221,    -1,   223,   224,    -1,
     226,   227,    -1,    -1,    -1,   231,    -1,    -1,   234,   235,
      -1,    -1,   238,    -1,    -1,   241,   242,    -1,    -1,    -1,
      -1,    -1,   248,   249,    -1,   251,    -1,   253,    -1,   255,
     256,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   264,   265,
     266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
     276,    -1,   278,   279,    -1,   281,   282,   283,   284,    -1,
     286,   287,   288,    -1,    -1,    -1,   292,   293,   294,   295,
     296,    -1,    -1,   299,   300,    -1,   302,    -1,   304,    -1,
     306,   307,   308,   309,   310,   311,   312,   313,    -1,    -1,
     316,   317,    -1,    -1,   320,   321,   322,   323,    -1,    -1,
      -1,   327,   328,    -1,    -1,    -1,    -1,   333,   334,   335,
      -1,   337,   338,   339,    -1,   341,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   351,   352,   353,    -1,   355,
     356,   357,   358,   359,   360,   361,   362,   363,   364,   365,
     366,    -1,    -1,   369,   370,   371,    -1,   373,    -1,   375,
     376,   377,   378,    -1,   380,   381,   382,    -1,    -1,   385,
      -1,    -1,    -1,   389,   390,   391,   392,   393,    -1,    -1,
     396,   397,   398,    -1,   400,   401,    -1,   403,   404,   405,
      -1,    -1,   408,    -1,   410,   411,   412,    -1,   414,   415,
      -1,    -1,    -1,   419,   420,   421,   422,   423,   424,   425,
     426,   427,    -1,   429,   430,    -1,    -1,    -1,   434,   435,
     436,   437,    -1,    -1,    -1,   441,    -1,    -1,    -1,   445,
     446,   447,   448,    -1,   450,   451,   452,   453,   454,    -1,
      -1,    -1,    -1,    -1,    -1,   461,   462,    -1,   464,    -1,
      -1,   467,    -1,    -1,   470,   471,   472,    -1,    -1,   475,
     476,    -1,   478,   479,   480,   481,   482,    -1,    -1,   485,
     486,   487,   488,    -1,   490,   491,    -1,    -1,   494,   495,
     496,    -1,    -1,   499,   500,    -1,   502,   503,   504,   505,
      -1,    -1,    -1,    -1,    -1,   511,   512,    -1,    -1,    -1,
     516,   517,   518,   519,    -1,   521,   522,    -1,   524,   525,
      -1,   527,   528,    -1,    -1,   531,    -1,    -1,   534,    -1,
     536,    -1,   538,   539,    -1,    -1,    -1,    -1,    -1,    -1,
     546,    -1,    -1,   549,    -1,    -1,    -1,   553,   554,   555,
     556,    -1,    -1,    -1,    -1,   561,   562,    -1,   564,   565,
      -1,     5,   568,     7,     8,     9,    10,    11,    -1,    -1,
      -1,    -1,    -1,    17,    -1,    -1,    20,    -1,    22,    23,
      24,    25,    26,    27,    28,    -1,    30,    -1,    -1,    -1,
      34,    -1,    -1,    -1,    38,    -1,    -1,    41,    42,    43,
      -1,    45,    -1,    47,    48,    -1,    -1,    51,    -1,    -1,
      54,    -1,    56,    57,    -1,    59,    -1,    61,    62,    63,
      64,    65,    -1,    67,    68,    -1,    70,    71,    72,    73,
      74,    75,    76,    -1,    78,    79,    -1,    81,    82,    -1,
      84,    -1,    -1,    87,    -1,    -1,    90,    -1,    -1,    -1,
      -1,    -1,    -1,    97,    98,    99,    -1,    -1,   102,    -1,
      -1,    -1,    -1,   107,   108,    -1,    -1,    -1,    -1,   113,
      -1,   115,    -1,    -1,    -1,   119,    -1,   121,   122,   123,
     124,    -1,    -1,    -1,   128,    -1,    -1,   131,   132,   133,
      -1,    -1,    -1,   137,    -1,   139,   140,    -1,   142,   143,
     144,    -1,    -1,   147,    -1,   149,   150,   151,   152,   153,
      -1,    -1,   156,   157,   158,    -1,    -1,   161,   162,    -1,
     164,   165,   166,    -1,    -1,   169,    -1,    -1,    -1,   173,
     174,    -1,   176,    -1,   178,    -1,   180,   181,   182,   183,
      -1,   185,    -1,    -1,    -1,   189,   190,    -1,   192,    -1,
      -1,   195,   196,    -1,    -1,    -1,   200,   201,   202,   203,
      -1,    -1,   206,   207,    -1,    -1,   210,    -1,   212,    -1,
      -1,    -1,   216,   217,    -1,    -1,    -1,   221,    -1,   223,
     224,    -1,   226,   227,    -1,    -1,    -1,   231,    -1,    -1,
     234,   235,    -1,    -1,   238,    -1,    -1,   241,   242,    -1,
      -1,    -1,    -1,    -1,   248,   249,    -1,   251,    -1,   253,
      -1,   255,   256,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     264,   265,   266,   267,   268,   269,   270,   271,   272,   273,
     274,   275,   276,    -1,   278,   279,    -1,   281,   282,   283,
     284,    -1,   286,   287,   288,    -1,    -1,    -1,   292,   293,
     294,   295,   296,    -1,    -1,   299,   300,    -1,   302,    -1,
     304,    -1,   306,   307,   308,   309,   310,   311,   312,   313,
      -1,    -1,   316,   317,    -1,    -1,   320,   321,   322,   323,
      -1,    -1,    -1,   327,   328,    -1,    -1,    -1,    -1,   333,
     334,   335,    -1,   337,   338,   339,    -1,   341,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   351,   352,   353,
      -1,   355,   356,   357,   358,   359,   360,   361,   362,   363,
     364,   365,   366,    -1,    -1,   369,   370,   371,   372,   373,
      -1,   375,   376,   377,   378,    -1,   380,   381,   382,    -1,
      -1,   385,    -1,    -1,    -1,   389,   390,   391,   392,   393,
      -1,    -1,   396,   397,   398,    -1,   400,   401,    -1,   403,
     404,   405,    -1,    -1,   408,    -1,   410,   411,   412,    -1,
     414,   415,    -1,    -1,    -1,   419,   420,   421,   422,   423,
     424,   425,   426,   427,    -1,   429,   430,    -1,    -1,    -1,
     434,   435,   436,   437,    -1,    -1,    -1,   441,    -1,    -1,
      -1,   445,   446,   447,   448,    -1,   450,   451,   452,   453,
     454,    -1,    -1,    -1,    -1,    -1,    -1,   461,   462,    -1,
     464,    -1,    -1,   467,    -1,    -1,   470,   471,   472,    -1,
      -1,   475,   476,    -1,   478,   479,   480,   481,   482,    -1,
      -1,   485,   486,   487,   488,    -1,   490,   491,    -1,    -1,
     494,   495,   496,    -1,    -1,   499,   500,    -1,   502,   503,
     504,   505,    -1,    -1,    -1,    -1,    -1,   511,   512,    -1,
      -1,    -1,   516,   517,   518,   519,    -1,   521,   522,    -1,
     524,   525,    -1,   527,   528,    -1,    -1,   531,    -1,    -1,
     534,    -1,   536,    -1,   538,   539,    -1,    -1,    -1,    -1,
      -1,    -1,   546,    -1,    -1,   549,    -1,    -1,    -1,   553,
     554,   555,   556,    -1,    -1,    -1,    -1,   561,   562,    -1,
     564,   565,    -1,     5,   568,     7,     8,     9,    10,    11,
      12,    -1,    -1,    -1,    -1,    17,    -1,    -1,    20,    -1,
      22,    23,    24,    25,    26,    27,    28,    -1,    30,    -1,
      -1,    -1,    34,    -1,    -1,    -1,    38,    -1,    -1,    41,
      42,    43,    -1,    45,    -1,    47,    48,    -1,    -1,    51,
      -1,    -1,    54,    -1,    56,    57,    -1,    59,    -1,    61,
      62,    63,    64,    65,    -1,    67,    68,    -1,    70,    71,
      72,    73,    74,    75,    76,    -1,    78,    79,    -1,    81,
      82,    -1,    84,    -1,    -1,    87,    -1,    -1,    90,    -1,
      -1,    -1,    -1,    -1,    -1,    97,    98,    99,    -1,    -1,
     102,    -1,    -1,    -1,    -1,   107,   108,    -1,    -1,    -1,
      -1,   113,    -1,   115,    -1,    -1,    -1,   119,    -1,   121,
     122,   123,   124,    -1,    -1,    -1,   128,    -1,    -1,   131,
     132,   133,    -1,    -1,    -1,   137,    -1,   139,   140,    -1,
     142,   143,   144,    -1,    -1,   147,    -1,   149,   150,   151,
     152,   153,    -1,    -1,   156,   157,   158,    -1,    -1,   161,
     162,    -1,   164,   165,   166,    -1,    -1,   169,    -1,    -1,
      -1,   173,   174,    -1,   176,    -1,   178,    -1,   180,   181,
     182,   183,    -1,   185,    -1,    -1,    -1,   189,   190,    -1,
     192,    -1,    -1,   195,   196,    -1,    -1,    -1,   200,   201,
     202,   203,    -1,    -1,   206,   207,    -1,    -1,   210,    -1,
     212,    -1,    -1,    -1,   216,   217,    -1,    -1,    -1,   221,
      -1,   223,   224,    -1,   226,   227,    -1,    -1,    -1,   231,
      -1,    -1,   234,   235,    -1,    -1,   238,    -1,    -1,   241,
     242,    -1,    -1,    -1,    -1,    -1,   248,   249,    -1,   251,
      -1,   253,    -1,   255,   256,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   264,   265,   266,   267,   268,   269,   270,   271,
     272,   273,   274,   275,   276,    -1,   278,   279,    -1,   281,
     282,   283,   284,    -1,   286,   287,   288,    -1,    -1,    -1,
     292,   293,   294,   295,   296,    -1,    -1,   299,   300,    -1,
     302,    -1,   304,    -1,   306,   307,   308,   309,   310,   311,
     312,   313,    -1,    -1,   316,   317,    -1,    -1,   320,   321,
     322,   323,    -1,    -1,    -1,   327,   328,    -1,    -1,    -1,
      -1,   333,   334,   335,    -1,   337,   338,   339,    -1,   341,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   351,
     352,   353,    -1,   355,   356,   357,   358,   359,   360,   361,
     362,   363,   364,   365,   366,    -1,    -1,   369,   370,   371,
      -1,   373,    -1,   375,   376,   377,   378,    -1,   380,   381,
     382,    -1,    -1,   385,    -1,    -1,    -1,   389,   390,   391,
     392,   393,    -1,    -1,   396,   397,   398,    -1,   400,   401,
      -1,   403,   404,   405,    -1,    -1,   408,    -1,   410,   411,
     412,    -1,   414,   415,    -1,    -1,    -1,   419,   420,   421,
     422,   423,   424,   425,   426,   427,    -1,   429,   430,    -1,
      -1,    -1,   434,   435,   436,   437,    -1,    -1,    -1,   441,
      -1,    -1,    -1,   445,   446,   447,   448,    -1,   450,   451,
     452,   453,   454,    -1,    -1,    -1,    -1,    -1,    -1,   461,
     462,    -1,   464,    -1,    -1,   467,    -1,    -1,   470,   471,
     472,    -1,    -1,   475,   476,    -1,   478,   479,   480,   481,
     482,    -1,    -1,   485,   486,   487,   488,    -1,   490,   491,
      -1,    -1,   494,   495,   496,    -1,    -1,   499,   500,    -1,
     502,   503,   504,   505,    -1,    -1,    -1,    -1,    -1,   511,
     512,    -1,    -1,    -1,   516,   517,   518,   519,    -1,   521,
     522,    -1,   524,   525,    -1,   527,   528,    -1,    -1,   531,
      -1,    -1,   534,    -1,   536,    -1,   538,   539,    -1,    -1,
      -1,    -1,    -1,    -1,   546,    -1,    -1,   549,    -1,    -1,
      -1,   553,   554,   555,   556,    -1,    -1,    -1,    -1,   561,
     562,    -1,   564,   565,    -1,     5,   568,     7,     8,     9,
      10,    11,    -1,    -1,    -1,    -1,    -1,    17,    -1,    -1,
      20,    -1,    22,    23,    24,    25,    26,    27,    28,    -1,
      30,    -1,    -1,    -1,    34,    -1,    -1,    -1,    38,    -1,
      -1,    41,    42,    43,    -1,    45,    -1,    47,    48,    -1,
      -1,    51,    -1,    -1,    54,    -1,    56,    57,    -1,    59,
      -1,    61,    62,    63,    64,    65,    -1,    67,    68,    -1,
      70,    71,    72,    73,    74,    75,    76,    -1,    78,    79,
      -1,    81,    82,    -1,    84,    -1,    -1,    87,    -1,    -1,
      90,    -1,    -1,    -1,    -1,    -1,    -1,    97,    98,    99,
      -1,    -1,   102,    -1,    -1,    -1,    -1,   107,   108,    -1,
      -1,    -1,    -1,   113,    -1,   115,    -1,    -1,    -1,   119,
      -1,   121,   122,   123,   124,    -1,    -1,    -1,   128,    -1,
      -1,   131,   132,   133,    -1,    -1,    -1,   137,    -1,   139,
     140,    -1,   142,   143,   144,    -1,    -1,   147,    -1,   149,
     150,   151,   152,   153,    -1,    -1,   156,   157,   158,    -1,
      -1,   161,   162,    -1,   164,   165,   166,    -1,    -1,   169,
      -1,    -1,    -1,   173,   174,    -1,   176,    -1,   178,    -1,
     180,   181,   182,   183,    -1,   185,    -1,    -1,    -1,   189,
     190,    -1,   192,    -1,    -1,   195,   196,    -1,    -1,    -1,
     200,   201,   202,   203,    -1,    -1,   206,   207,    -1,    -1,
     210,    -1,   212,    -1,    -1,    -1,   216,   217,    -1,    -1,
      -1,   221,    -1,   223,   224,    -1,   226,   227,    -1,    -1,
      -1,   231,    -1,    -1,   234,   235,    -1,    -1,   238,    -1,
      -1,   241,   242,    -1,    -1,    -1,    -1,    -1,   248,   249,
      -1,   251,    -1,   253,    -1,   255,   256,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   264,   265,   266,   267,   268,   269,
     270,   271,   272,   273,   274,   275,   276,    -1,   278,   279,
      -1,   281,   282,   283,   284,    -1,   286,   287,   288,    -1,
      -1,    -1,   292,   293,   294,   295,   296,    -1,    -1,   299,
     300,    -1,   302,    -1,   304,    -1,   306,   307,   308,   309,
     310,   311,   312,   313,    -1,    -1,   316,   317,    -1,    -1,
     320,   321,   322,   323,    -1,    -1,    -1,   327,   328,    -1,
      -1,    -1,    -1,   333,   334,   335,    -1,   337,   338,   339,
      -1,   341,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   351,   352,   353,    -1,   355,   356,   357,   358,   359,
     360,   361,   362,   363,   364,   365,   366,    -1,    -1,   369,
     370,   371,    -1,   373,    -1,   375,   376,   377,   378,    -1,
     380,   381,   382,    -1,    -1,   385,    -1,    -1,    -1,   389,
     390,   391,   392,   393,    -1,    -1,   396,   397,   398,    -1,
     400,   401,    -1,   403,   404,   405,    -1,    -1,   408,    -1,
     410,   411,   412,    -1,   414,   415,    -1,    -1,    -1,   419,
     420,   421,   422,   423,   424,   425,   426,   427,    -1,   429,
     430,    -1,    -1,    -1,   434,   435,   436,   437,    -1,    -1,
      -1,   441,    -1,    -1,    -1,   445,   446,   447,   448,    -1,
     450,   451,   452,   453,   454,    -1,    -1,    -1,    -1,    -1,
      -1,   461,   462,    -1,   464,    -1,    -1,   467,    -1,    -1,
     470,   471,   472,    -1,    -1,   475,   476,    -1,   478,   479,
     480,   481,   482,    -1,    -1,   485,   486,   487,   488,    -1,
     490,   491,    -1,    -1,   494,   495,   496,    -1,   498,   499,
     500,    -1,   502,   503,   504,   505,    -1,    -1,    -1,    -1,
      -1,   511,   512,    -1,    -1,    -1,   516,   517,   518,   519,
      -1,   521,   522,    -1,   524,   525,    -1,   527,   528,    -1,
      -1,   531,    -1,    -1,   534,    -1,   536,    -1,   538,   539,
      -1,    -1,    -1,    -1,    -1,    -1,   546,    -1,    -1,   549,
      -1,    -1,    -1,   553,   554,   555,   556,    -1,    -1,    -1,
      -1,   561,   562,    -1,   564,   565,    -1,     5,   568,     7,
       8,     9,    10,    11,    -1,    -1,    -1,    -1,    -1,    17,
      -1,    -1,    20,    -1,    22,    23,    24,    25,    26,    27,
      28,    -1,    30,    -1,    -1,    -1,    34,    -1,    -1,    -1,
      38,    -1,    -1,    41,    42,    43,    -1,    45,    -1,    47,
      48,    -1,    -1,    51,    -1,    -1,    54,    -1,    56,    57,
      -1,    59,    -1,    61,    62,    63,    64,    65,    -1,    67,
      68,    -1,    70,    71,    72,    73,    74,    75,    76,    -1,
      78,    79,    -1,    81,    82,    -1,    84,    -1,    -1,    87,
      -1,    -1,    90,    -1,    -1,    -1,    -1,    -1,    -1,    97,
      98,    99,    -1,    -1,   102,    -1,    -1,    -1,    -1,   107,
     108,    -1,    -1,    -1,   112,   113,    -1,   115,    -1,    -1,
      -1,   119,    -1,   121,   122,   123,   124,    -1,    -1,    -1,
     128,    -1,    -1,   131,   132,   133,    -1,    -1,    -1,   137,
      -1,   139,   140,    -1,   142,   143,   144,    -1,    -1,   147,
      -1,   149,   150,   151,   152,   153,    -1,    -1,   156,   157,
     158,    -1,    -1,   161,   162,    -1,   164,   165,   166,    -1,
      -1,   169,    -1,    -1,    -1,   173,   174,    -1,   176,    -1,
     178,    -1,   180,   181,   182,   183,    -1,   185,    -1,    -1,
      -1,   189,   190,    -1,   192,    -1,    -1,   195,   196,    -1,
      -1,    -1,   200,   201,   202,   203,    -1,    -1,   206,   207,
      -1,    -1,   210,    -1,   212,    -1,    -1,    -1,   216,   217,
      -1,    -1,    -1,   221,    -1,   223,   224,    -1,   226,   227,
      -1,    -1,    -1,   231,    -1,    -1,   234,   235,    -1,    -1,
     238,    -1,    -1,   241,   242,    -1,    -1,    -1,    -1,    -1,
     248,   249,    -1,   251,    -1,   253,    -1,   255,   256,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   264,   265,   266,   267,
     268,   269,   270,   271,   272,   273,   274,   275,   276,    -1,
     278,   279,    -1,   281,   282,   283,   284,    -1,   286,   287,
     288,    -1,    -1,    -1,   292,   293,   294,   295,   296,    -1,
      -1,   299,   300,    -1,   302,    -1,   304,    -1,   306,   307,
     308,   309,   310,   311,   312,   313,    -1,    -1,   316,   317,
      -1,    -1,   320,   321,   322,   323,    -1,    -1,    -1,   327,
     328,    -1,    -1,    -1,    -1,   333,   334,   335,    -1,   337,
     338,   339,    -1,   341,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   351,   352,   353,    -1,   355,   356,   357,
     358,   359,   360,   361,   362,   363,   364,   365,   366,    -1,
      -1,   369,   370,   371,    -1,   373,    -1,   375,   376,   377,
     378,    -1,   380,   381,   382,    -1,    -1,   385,    -1,    -1,
      -1,   389,   390,   391,   392,   393,    -1,    -1,   396,   397,
     398,    -1,   400,   401,    -1,   403,   404,   405,    -1,    -1,
     408,    -1,   410,   411,   412,    -1,   414,   415,    -1,    -1,
      -1,   419,   420,   421,   422,   423,   424,   425,   426,   427,
      -1,   429,   430,    -1,    -1,    -1,   434,   435,   436,   437,
      -1,    -1,    -1,   441,    -1,    -1,    -1,   445,   446,   447,
     448,    -1,   450,   451,   452,   453,   454,    -1,    -1,    -1,
      -1,    -1,    -1,   461,   462,    -1,   464,    -1,    -1,   467,
      -1,    -1,   470,   471,   472,    -1,    -1,   475,   476,    -1,
     478,   479,   480,   481,   482,    -1,    -1,   485,   486,   487,
     488,    -1,   490,   491,    -1,    -1,   494,   495,   496,    -1,
      -1,   499,   500,    -1,   502,   503,   504,   505,    -1,    -1,
      -1,    -1,    -1,   511,   512,    -1,    -1,    -1,   516,   517,
     518,   519,    -1,   521,   522,    -1,   524,   525,    -1,   527,
     528,    -1,    -1,   531,    -1,    -1,   534,    -1,   536,    -1,
     538,   539,    -1,    -1,    -1,    -1,    -1,    -1,   546,    -1,
      -1,   549,    -1,    -1,    -1,   553,   554,   555,   556,    -1,
      -1,    -1,    -1,   561,   562,    -1,   564,   565,    -1,     5,
     568,     7,     8,     9,    10,    11,    -1,    -1,    -1,    -1,
      -1,    17,    -1,    -1,    20,    -1,    22,    23,    24,    25,
      26,    27,    28,    -1,    30,    -1,    -1,    -1,    34,    -1,
      -1,    -1,    38,    -1,    -1,    41,    42,    43,    -1,    45,
      -1,    47,    48,    -1,    -1,    51,    -1,    -1,    54,    -1,
      56,    57,    -1,    59,    -1,    61,    62,    63,    64,    65,
      -1,    67,    68,    -1,    70,    71,    72,    73,    74,    75,
      76,    -1,    78,    79,    -1,    81,    82,    -1,    84,    -1,
      -1,    87,    -1,    -1,    90,    -1,    -1,    -1,    -1,    -1,
      -1,    97,    98,    99,    -1,    -1,   102,    -1,    -1,    -1,
      -1,   107,   108,    -1,    -1,    -1,    -1,   113,    -1,   115,
      -1,    -1,    -1,   119,    -1,   121,   122,   123,   124,    -1,
      -1,    -1,   128,    -1,    -1,   131,   132,   133,    -1,    -1,
      -1,   137,    -1,   139,   140,    -1,   142,   143,   144,    -1,
      -1,   147,    -1,   149,   150,   151,   152,   153,    -1,    -1,
     156,   157,   158,    -1,    -1,   161,   162,    -1,   164,   165,
     166,    -1,    -1,   169,    -1,    -1,    -1,   173,   174,    -1,
     176,    -1,   178,    -1,   180,   181,   182,   183,    -1,   185,
      -1,    -1,    -1,   189,   190,    -1,   192,    -1,    -1,   195,
     196,    -1,    -1,    -1,   200,   201,   202,   203,    -1,    -1,
     206,   207,    -1,    -1,   210,    -1,   212,    -1,    -1,    -1,
     216,   217,    -1,    -1,    -1,   221,    -1,   223,   224,    -1,
     226,   227,    -1,    -1,    -1,   231,    -1,    -1,   234,   235,
      -1,    -1,   238,    -1,    -1,   241,   242,    -1,    -1,    -1,
      -1,    -1,   248,   249,    -1,   251,    -1,   253,    -1,   255,
     256,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   264,   265,
     266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
     276,    -1,   278,   279,    -1,   281,   282,   283,   284,    -1,
     286,   287,   288,    -1,    -1,    -1,   292,   293,   294,   295,
     296,    -1,    -1,   299,   300,    -1,   302,    -1,   304,    -1,
     306,   307,   308,   309,   310,   311,   312,   313,    -1,    -1,
     316,   317,    -1,    -1,   320,   321,   322,   323,    -1,    -1,
      -1,   327,   328,    -1,    -1,    -1,    -1,   333,   334,   335,
      -1,   337,   338,   339,    -1,   341,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   351,   352,   353,    -1,   355,
     356,   357,   358,   359,   360,   361,   362,   363,   364,   365,
     366,    -1,    -1,   369,   370,   371,    -1,   373,    -1,   375,
     376,   377,   378,    -1,   380,   381,   382,    -1,    -1,   385,
      -1,    -1,    -1,   389,   390,   391,   392,   393,    -1,    -1,
     396,   397,   398,    -1,   400,   401,    -1,   403,   404,   405,
      -1,    -1,   408,    -1,   410,   411,   412,    -1,   414,   415,
      -1,    -1,    -1,   419,   420,   421,   422,   423,   424,   425,
     426,   427,    -1,   429,   430,    -1,    -1,    -1,   434,   435,
     436,   437,    -1,    -1,    -1,   441,    -1,    -1,    -1,   445,
     446,   447,   448,    -1,   450,   451,   452,   453,   454,    -1,
      -1,    -1,    -1,    -1,    -1,   461,   462,    -1,   464,    -1,
      -1,   467,    -1,    -1,   470,   471,   472,    -1,    -1,   475,
     476,    -1,   478,   479,   480,   481,   482,    -1,    -1,   485,
     486,   487,   488,    -1,   490,   491,    -1,    -1,   494,   495,
     496,    -1,    -1,   499,   500,    -1,   502,   503,   504,   505,
      -1,    -1,    -1,    -1,    -1,   511,   512,    -1,    -1,    -1,
     516,   517,   518,   519,    -1,   521,   522,    -1,   524,   525,
      -1,   527,   528,    -1,    -1,   531,    -1,    -1,   534,    -1,
     536,    -1,   538,   539,    -1,    -1,    -1,    -1,    -1,    -1,
     546,    -1,    -1,   549,    -1,    -1,    -1,   553,   554,   555,
     556,    -1,    -1,    -1,    -1,   561,   562,    -1,   564,   565,
      -1,     5,   568,     7,     8,     9,    10,    11,    -1,    -1,
      -1,    -1,    -1,    17,    -1,    -1,    20,    -1,    22,    23,
      24,    25,    26,    27,    28,    -1,    30,    -1,    -1,    -1,
      34,    -1,    -1,    -1,    38,    -1,    -1,    41,    42,    43,
      -1,    45,    -1,    47,    48,    -1,    -1,    51,    -1,    -1,
      54,    -1,    56,    57,    -1,    59,    -1,    61,    62,    63,
      64,    65,    -1,    67,    68,    -1,    70,    71,    72,    73,
      74,    75,    76,    -1,    78,    79,    -1,    81,    82,    -1,
      84,    -1,    -1,    87,    -1,    -1,    90,    -1,    -1,    -1,
      -1,    -1,    -1,    97,    98,    99,    -1,    -1,   102,    -1,
      -1,    -1,    -1,   107,   108,    -1,    -1,    -1,    -1,   113,
      -1,   115,    -1,    -1,    -1,   119,    -1,   121,   122,   123,
     124,    -1,    -1,    -1,   128,    -1,    -1,   131,   132,   133,
      -1,    -1,    -1,   137,    -1,   139,   140,    -1,   142,   143,
     144,    -1,    -1,   147,    -1,   149,   150,   151,   152,   153,
      -1,    -1,   156,   157,   158,    -1,    -1,   161,   162,    -1,
     164,   165,   166,    -1,    -1,   169,    -1,    -1,    -1,   173,
     174,    -1,   176,    -1,   178,    -1,   180,   181,   182,   183,
      -1,   185,    -1,    -1,    -1,   189,   190,    -1,   192,    -1,
      -1,   195,   196,    -1,    -1,    -1,   200,   201,   202,   203,
      -1,    -1,   206,   207,    -1,    -1,   210,    -1,   212,    -1,
      -1,    -1,   216,   217,    -1,    -1,    -1,   221,    -1,   223,
     224,    -1,   226,   227,    -1,    -1,    -1,   231,    -1,    -1,
     234,   235,    -1,    -1,   238,    -1,    -1,   241,   242,    -1,
      -1,    -1,    -1,    -1,   248,   249,    -1,   251,    -1,   253,
      -1,   255,   256,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     264,   265,   266,   267,   268,   269,   270,   271,   272,   273,
     274,   275,   276,    -1,   278,   279,    -1,   281,   282,   283,
     284,    -1,   286,   287,   288,    -1,    -1,    -1,   292,   293,
     294,   295,   296,    -1,    -1,   299,   300,    -1,   302,    -1,
     304,    -1,   306,   307,   308,   309,   310,   311,   312,   313,
      -1,    -1,   316,   317,    -1,    -1,   320,   321,   322,   323,
      -1,    -1,    -1,   327,   328,    -1,    -1,    -1,    -1,   333,
     334,   335,    -1,   337,   338,   339,    -1,   341,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   351,   352,   353,
      -1,   355,   356,   357,   358,   359,   360,   361,   362,   363,
     364,   365,   366,    -1,    -1,   369,   370,   371,    -1,   373,
      -1,   375,   376,   377,   378,    -1,   380,   381,   382,    -1,
      -1,   385,    -1,    -1,    -1,   389,   390,   391,   392,   393,
      -1,    -1,   396,   397,   398,    -1,   400,   401,    -1,   403,
     404,   405,    -1,    -1,   408,    -1,   410,   411,   412,    -1,
     414,   415,    -1,    -1,    -1,   419,   420,   421,   422,   423,
     424,   425,   426,   427,    -1,   429,   430,    -1,    -1,    -1,
     434,   435,   436,   437,    -1,    -1,    -1,   441,    -1,    -1,
      -1,   445,   446,   447,   448,    -1,   450,   451,   452,   453,
     454,    -1,    -1,    -1,    -1,    -1,    -1,   461,   462,    -1,
     464,    -1,    -1,   467,    -1,    -1,   470,   471,   472,    -1,
      -1,   475,   476,    -1,   478,   479,   480,   481,   482,    -1,
      -1,   485,   486,   487,   488,    -1,   490,   491,    -1,    -1,
     494,   495,   496,    -1,    -1,   499,   500,    -1,   502,   503,
     504,   505,    -1,    -1,    -1,    -1,    -1,   511,   512,    -1,
      -1,    -1,   516,   517,   518,   519,    -1,   521,   522,    -1,
     524,   525,    -1,   527,   528,    -1,    -1,   531,    -1,    -1,
     534,    -1,   536,    -1,   538,   539,    -1,    -1,    -1,    -1,
      -1,    -1,   546,    -1,    -1,   549,    -1,    -1,    -1,   553,
     554,   555,   556,    -1,    -1,    -1,    -1,   561,   562,    -1,
     564,   565,    -1,     5,   568,     7,     8,     9,    10,    11,
      -1,    -1,    -1,    -1,    -1,    17,    -1,    -1,    -1,    -1,
      22,    23,    24,    25,    26,    27,    -1,    -1,    30,    -1,
      -1,    -1,    34,    -1,    -1,    -1,    38,    -1,    -1,    41,
      42,    43,    -1,    45,    -1,    -1,    -1,    -1,    -1,    51,
      52,    -1,    54,    -1,    56,    -1,    -1,    -1,    -1,    61,
      62,    63,    64,    65,    -1,    67,    68,    -1,    -1,    71,
      -1,    73,    74,    75,    76,    -1,    78,    79,    -1,    -1,
      82,    -1,    84,    -1,    -1,    87,    -1,    -1,    90,    -1,
      -1,    -1,    -1,    -1,    -1,    97,    98,    99,    -1,    -1,
     102,    -1,    -1,    -1,    -1,   107,    -1,    -1,    -1,    -1,
      -1,   113,    -1,   115,    -1,    -1,    -1,   119,    -1,   121,
     122,   123,   124,    -1,    -1,    -1,    -1,    -1,    -1,   131,
     132,   133,    -1,   135,   136,   137,    -1,   139,   140,    -1,
     142,   143,   144,    -1,    -1,   147,    -1,   149,   150,   151,
     152,    -1,    -1,    -1,   156,   157,   158,    -1,    -1,   161,
     162,   163,   164,   165,   166,    -1,    -1,    -1,    -1,    -1,
      -1,   173,   174,    -1,   176,    -1,   178,    -1,   180,   181,
     182,   183,    -1,   185,    -1,    -1,    -1,    -1,   190,    -1,
      -1,    -1,    -1,    -1,   196,    -1,    -1,    -1,   200,   201,
     202,   203,   204,    -1,   206,   207,    -1,    -1,   210,    -1,
     212,    -1,    -1,    -1,   216,    -1,    -1,    -1,    -1,   221,
      -1,   223,   224,    -1,   226,   227,   228,    -1,    -1,   231,
      -1,    -1,    -1,   235,    -1,    -1,   238,   239,    -1,   241,
     242,    -1,    -1,    -1,    -1,    -1,   248,   249,    -1,   251,
      -1,   253,    -1,   255,   256,    -1,    -1,    -1,    -1,   261,
      -1,    -1,   264,   265,   266,   267,   268,   269,   270,   271,
     272,   273,   274,   275,   276,    -1,   278,   279,    -1,   281,
     282,   283,   284,    -1,   286,   287,   288,    -1,    -1,    -1,
     292,   293,   294,   295,   296,    -1,    -1,   299,   300,    -1,
     302,    -1,   304,    -1,   306,   307,   308,   309,   310,   311,
     312,   313,    -1,    -1,   316,   317,    -1,    -1,   320,   321,
     322,   323,    -1,    -1,    -1,    -1,   328,    -1,    -1,    -1,
      -1,   333,   334,   335,    -1,   337,   338,   339,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     352,   353,    -1,    -1,   356,   357,   358,    -1,   360,   361,
     362,   363,   364,   365,    -1,    -1,    -1,    -1,   370,   371,
      -1,   373,    -1,   375,   376,   377,   378,    -1,   380,   381,
     382,    -1,    -1,   385,    -1,    -1,    -1,   389,   390,   391,
     392,   393,    -1,    -1,   396,   397,   398,    -1,   400,    -1,
      -1,   403,    -1,   405,   406,    -1,   408,    -1,    -1,   411,
      -1,    -1,   414,   415,   416,    -1,    -1,    -1,   420,   421,
     422,   423,   424,   425,    -1,   427,    -1,   429,    -1,    -1,
      -1,    -1,   434,   435,   436,    -1,    -1,    -1,    -1,   441,
      -1,    -1,    -1,   445,    -1,   447,    -1,    -1,   450,    -1,
      -1,   453,   454,    -1,    -1,    -1,    -1,    -1,    -1,   461,
     462,    -1,   464,    -1,    -1,   467,    -1,    -1,   470,    -1,
     472,    -1,    -1,    -1,   476,    -1,   478,   479,   480,   481,
     482,    -1,    -1,   485,   486,   487,   488,    -1,   490,   491,
      -1,    -1,   494,   495,   496,    -1,    -1,   499,   500,    -1,
     502,   503,   504,   505,    -1,    -1,    -1,    -1,    -1,   511,
     512,    -1,    -1,    -1,    -1,   517,   518,   519,    -1,   521,
     522,    -1,   524,   525,    -1,    -1,    -1,    -1,    -1,   531,
      -1,    -1,   534,    -1,    -1,    -1,   538,   539,    -1,    -1,
      -1,    -1,    -1,    -1,   546,    -1,    -1,   549,    -1,    -1,
      -1,   553,   554,   555,   556,    -1,    -1,   559,    -1,   561,
      -1,    -1,   564,    -1,    -1,     5,   568,     7,     8,     9,
      10,    11,    -1,    -1,    -1,    -1,    -1,    17,    -1,    -1,
      -1,    -1,    22,    23,    24,    25,    26,    27,    -1,    -1,
      30,    -1,    -1,    -1,    34,    -1,    -1,    -1,    38,    -1,
      -1,    41,    42,    43,    -1,    45,    -1,    -1,    -1,    -1,
      -1,    51,    52,    -1,    54,    -1,    56,    -1,    -1,    -1,
      -1,    61,    62,    63,    64,    65,    -1,    67,    68,    -1,
      -1,    71,    -1,    73,    74,    75,    76,    -1,    78,    79,
      -1,    -1,    82,    -1,    84,    -1,    -1,    87,    -1,    -1,
      90,    -1,    -1,    -1,    -1,    -1,    -1,    97,    98,    99,
      -1,    -1,   102,    -1,    -1,    -1,    -1,   107,    -1,    -1,
      -1,    -1,    -1,   113,    -1,   115,    -1,    -1,    -1,   119,
      -1,   121,   122,   123,   124,    -1,    -1,    -1,    -1,    -1,
      -1,   131,   132,   133,    -1,   135,    -1,   137,    -1,   139,
     140,    -1,   142,   143,   144,    -1,    -1,   147,    -1,   149,
     150,   151,   152,    -1,    -1,    -1,   156,   157,   158,    -1,
      -1,   161,   162,   163,   164,   165,   166,    -1,    -1,    -1,
      -1,    -1,    -1,   173,   174,    -1,   176,    -1,   178,    -1,
     180,   181,   182,   183,    -1,   185,    -1,    -1,    -1,    -1,
     190,    -1,    -1,    -1,    -1,    -1,   196,    -1,    -1,    -1,
     200,   201,   202,   203,   204,    -1,   206,   207,    -1,    -1,
     210,    -1,   212,    -1,    -1,    -1,   216,    -1,    -1,    -1,
      -1,   221,    -1,   223,   224,    -1,   226,   227,   228,    -1,
      -1,   231,    -1,    -1,    -1,   235,    -1,    -1,   238,   239,
      -1,   241,   242,    -1,    -1,    -1,    -1,    -1,   248,   249,
      -1,   251,    -1,   253,    -1,   255,   256,    -1,    -1,    -1,
      -1,   261,    -1,    -1,   264,   265,   266,   267,   268,   269,
     270,   271,   272,   273,   274,   275,   276,    -1,   278,   279,
      -1,   281,   282,   283,   284,    -1,   286,   287,   288,    -1,
      -1,    -1,   292,   293,   294,   295,   296,    -1,    -1,   299,
     300,    -1,   302,    -1,   304,    -1,   306,   307,   308,   309,
     310,   311,   312,   313,    -1,    -1,   316,   317,    -1,    -1,
     320,   321,   322,   323,    -1,    -1,    -1,    -1,   328,    -1,
      -1,    -1,    -1,   333,   334,   335,    -1,   337,   338,   339,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   352,   353,    -1,    -1,   356,   357,   358,    -1,
     360,   361,   362,   363,   364,   365,    -1,    -1,    -1,    -1,
     370,   371,    -1,   373,    -1,   375,   376,   377,   378,    -1,
     380,   381,   382,    -1,    -1,   385,    -1,    -1,    -1,   389,
     390,   391,   392,   393,    -1,    -1,   396,   397,   398,    -1,
     400,    -1,    -1,   403,    -1,   405,   406,    -1,   408,    -1,
      -1,   411,    -1,    -1,   414,   415,   416,    -1,    -1,    -1,
     420,   421,   422,   423,   424,   425,    -1,   427,    -1,   429,
      -1,    -1,    -1,    -1,   434,   435,   436,    -1,    -1,    -1,
      -1,   441,    -1,    -1,    -1,   445,    -1,   447,    -1,    -1,
     450,    -1,    -1,   453,   454,    -1,    -1,    -1,    -1,    -1,
      -1,   461,   462,    -1,   464,    -1,    -1,   467,    -1,    -1,
     470,    -1,   472,    -1,    -1,    -1,   476,    -1,   478,   479,
     480,   481,   482,    -1,    -1,   485,   486,   487,   488,    -1,
     490,   491,    -1,    -1,   494,   495,   496,    -1,    -1,   499,
     500,    -1,   502,   503,   504,   505,    -1,    -1,    -1,    -1,
      -1,   511,   512,    -1,    -1,    -1,    -1,   517,   518,   519,
      -1,   521,   522,    -1,   524,   525,    -1,    -1,    -1,    -1,
      -1,   531,    -1,    -1,   534,    -1,    -1,    -1,   538,   539,
      -1,    -1,    -1,    -1,    -1,    -1,   546,    -1,    -1,   549,
      -1,    -1,    -1,   553,   554,   555,   556,   557,    -1,   559,
      -1,   561,    -1,    -1,   564,    -1,    -1,     5,   568,     7,
       8,     9,    10,    11,    -1,    -1,    -1,    -1,    -1,    17,
      -1,    -1,    -1,    -1,    22,    23,    24,    25,    26,    27,
      -1,    -1,    30,    -1,    -1,    -1,    34,    -1,    -1,    -1,
      38,    -1,    -1,    41,    42,    43,    -1,    45,    -1,    -1,
      -1,    -1,    -1,    51,    52,    -1,    54,    -1,    56,    -1,
      -1,    -1,    -1,    61,    62,    63,    64,    65,    -1,    67,
      68,    -1,    -1,    71,    -1,    73,    74,    75,    76,    -1,
      78,    79,    -1,    -1,    82,    -1,    84,    -1,    -1,    87,
      -1,    -1,    90,    -1,    -1,    -1,    -1,    -1,    -1,    97,
      98,    99,    -1,    -1,   102,    -1,    -1,    -1,    -1,   107,
      -1,    -1,    -1,    -1,    -1,   113,    -1,   115,    -1,    -1,
      -1,   119,    -1,   121,   122,   123,   124,    -1,    -1,    -1,
      -1,    -1,    -1,   131,   132,   133,    -1,   135,    -1,   137,
      -1,   139,   140,    -1,   142,   143,   144,    -1,    -1,   147,
      -1,   149,   150,   151,   152,    -1,    -1,    -1,   156,   157,
     158,    -1,    -1,   161,   162,   163,   164,   165,   166,    -1,
      -1,    -1,    -1,    -1,    -1,   173,   174,    -1,   176,    -1,
     178,    -1,   180,   181,   182,   183,    -1,   185,    -1,    -1,
      -1,    -1,   190,    -1,    -1,    -1,    -1,    -1,   196,    -1,
      -1,    -1,   200,   201,   202,   203,   204,    -1,   206,   207,
      -1,    -1,   210,    -1,   212,    -1,    -1,    -1,   216,    -1,
      -1,    -1,    -1,   221,    -1,   223,   224,    -1,   226,   227,
     228,    -1,    -1,   231,    -1,    -1,    -1,   235,    -1,    -1,
     238,   239,    -1,   241,   242,    -1,    -1,    -1,    -1,    -1,
     248,   249,    -1,   251,    -1,   253,    -1,   255,   256,    -1,
      -1,    -1,    -1,   261,    -1,    -1,   264,   265,   266,   267,
     268,   269,   270,   271,   272,   273,   274,   275,   276,    -1,
     278,   279,    -1,   281,   282,   283,   284,    -1,   286,   287,
     288,    -1,    -1,    -1,   292,   293,   294,   295,   296,    -1,
      -1,   299,   300,    -1,   302,    -1,   304,    -1,   306,   307,
     308,   309,   310,   311,   312,   313,    -1,    -1,   316,   317,
      -1,    -1,   320,   321,   322,   323,    -1,    -1,    -1,    -1,
     328,    -1,    -1,    -1,    -1,   333,   334,   335,    -1,   337,
     338,   339,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   352,   353,    -1,    -1,   356,   357,
     358,    -1,   360,   361,   362,   363,   364,   365,    -1,    -1,
      -1,    -1,   370,   371,    -1,   373,    -1,   375,   376,   377,
     378,    -1,   380,   381,   382,    -1,    -1,   385,    -1,    -1,
      -1,   389,   390,   391,   392,   393,    -1,    -1,   396,   397,
     398,    -1,   400,    -1,    -1,   403,    -1,   405,   406,    -1,
     408,    -1,    -1,   411,    -1,    -1,   414,   415,   416,    -1,
      -1,    -1,   420,   421,   422,   423,   424,   425,    -1,   427,
      -1,   429,    -1,    -1,    -1,    -1,   434,   435,   436,    -1,
      -1,    -1,    -1,   441,    -1,    -1,    -1,   445,    -1,   447,
      -1,    -1,   450,    -1,    -1,   453,   454,    -1,    -1,    -1,
      -1,    -1,    -1,   461,   462,    -1,   464,    -1,    -1,   467,
      -1,    -1,   470,    -1,   472,    -1,    -1,    -1,   476,    -1,
     478,   479,   480,   481,   482,    -1,    -1,   485,   486,   487,
     488,    -1,   490,   491,    -1,    -1,   494,   495,   496,    -1,
      -1,   499,   500,    -1,   502,   503,   504,   505,    -1,    -1,
      -1,    -1,    -1,   511,   512,    -1,    -1,    -1,    -1,   517,
     518,   519,    -1,   521,   522,    -1,   524,   525,    -1,    -1,
      -1,    -1,    -1,   531,    -1,    -1,   534,    -1,    -1,    -1,
     538,   539,    -1,    -1,    -1,    -1,    -1,    -1,   546,    -1,
      -1,   549,    -1,    -1,    -1,   553,   554,   555,   556,   557,
      -1,   559,    -1,   561,    -1,    -1,   564,    -1,    -1,     5,
     568,     7,     8,     9,    10,    11,    -1,    -1,    -1,    -1,
      -1,    17,    -1,    -1,    -1,    -1,    22,    23,    24,    25,
      26,    27,    -1,    -1,    30,    -1,    -1,    -1,    34,    -1,
      -1,    -1,    38,    -1,    -1,    41,    42,    43,    -1,    45,
      -1,    -1,    -1,    -1,    -1,    51,    52,    -1,    54,    -1,
      56,    -1,    -1,    -1,    -1,    61,    62,    63,    64,    65,
      -1,    67,    68,    -1,    -1,    71,    -1,    73,    74,    75,
      76,    -1,    78,    79,    -1,    -1,    82,    -1,    84,    -1,
      -1,    87,    -1,    -1,    90,    -1,    -1,    -1,    -1,    -1,
      -1,    97,    98,    99,    -1,    -1,   102,    -1,    -1,    -1,
      -1,   107,    -1,    -1,    -1,    -1,    -1,   113,    -1,   115,
      -1,    -1,    -1,   119,    -1,   121,   122,   123,   124,    -1,
      -1,    -1,    -1,    -1,    -1,   131,   132,   133,    -1,    -1,
      -1,   137,    -1,   139,   140,    -1,   142,   143,   144,    -1,
      -1,   147,    -1,   149,   150,   151,   152,    -1,    -1,    -1,
     156,   157,   158,    -1,    -1,   161,   162,   163,   164,   165,
     166,    -1,    -1,    -1,    -1,    -1,    -1,   173,   174,    -1,
     176,    -1,   178,    -1,   180,   181,   182,   183,    -1,   185,
      -1,    -1,    -1,    -1,   190,    -1,    -1,    -1,    -1,    -1,
     196,    -1,    -1,    -1,   200,   201,   202,   203,   204,    -1,
     206,   207,    -1,    -1,   210,    -1,   212,    -1,    -1,    -1,
     216,    -1,    -1,    -1,    -1,   221,    -1,   223,   224,    -1,
     226,   227,   228,    -1,    -1,   231,    -1,    -1,    -1,   235,
      -1,    -1,   238,   239,    -1,   241,   242,    -1,    -1,    -1,
      -1,    -1,   248,   249,    -1,   251,    -1,   253,    -1,   255,
     256,    -1,    -1,    -1,    -1,   261,    -1,    -1,   264,   265,
     266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
     276,    -1,   278,   279,    -1,   281,   282,   283,   284,    -1,
     286,   287,   288,    -1,    -1,    -1,   292,   293,   294,   295,
     296,    -1,    -1,   299,   300,    -1,   302,    -1,   304,    -1,
     306,   307,   308,   309,   310,   311,   312,   313,    -1,    -1,
     316,   317,    -1,    -1,   320,   321,   322,   323,    -1,    -1,
      -1,    -1,   328,    -1,    -1,    -1,    -1,   333,   334,   335,
      -1,   337,   338,   339,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   352,   353,    -1,    -1,
     356,   357,   358,    -1,   360,   361,   362,   363,   364,   365,
      -1,    -1,    -1,    -1,   370,   371,    -1,   373,    -1,   375,
     376,   377,   378,    -1,   380,   381,   382,    -1,    -1,   385,
      -1,    -1,    -1,   389,   390,   391,   392,   393,    -1,    -1,
     396,   397,   398,    -1,   400,    -1,    -1,   403,    -1,   405,
     406,    -1,   408,    -1,    -1,   411,    -1,    -1,   414,   415,
     416,    -1,    -1,    -1,   420,   421,   422,   423,   424,   425,
      -1,   427,    -1,   429,    -1,    -1,    -1,    -1,   434,   435,
     436,    -1,    -1,    -1,    -1,   441,    -1,    -1,    -1,   445,
      -1,   447,    -1,    -1,   450,    -1,    -1,   453,   454,    -1,
      -1,    -1,    -1,    -1,    -1,   461,   462,    -1,   464,    -1,
      -1,   467,    -1,    -1,   470,    -1,   472,    -1,    -1,    -1,
     476,    -1,   478,   479,   480,   481,   482,    -1,    -1,   485,
     486,   487,   488,    -1,   490,   491,    -1,    -1,   494,   495,
     496,    -1,    -1,   499,   500,    -1,   502,   503,   504,   505,
      -1,    -1,    -1,    -1,    -1,   511,   512,    -1,    -1,    -1,
      -1,   517,   518,   519,    -1,   521,   522,    -1,   524,   525,
      -1,    -1,    -1,    -1,    -1,   531,    -1,    -1,   534,    -1,
      -1,    -1,   538,   539,    -1,    -1,    -1,    -1,    -1,    -1,
     546,    -1,    -1,   549,    -1,    -1,    -1,   553,   554,   555,
     556,    -1,    -1,   559,    -1,   561,    -1,    -1,   564,    -1,
      -1,     5,   568,     7,     8,     9,    10,    11,    -1,    -1,
      -1,    -1,    -1,    17,    -1,    -1,    -1,    -1,    22,    23,
      24,    25,    26,    27,    -1,    -1,    30,    -1,    -1,    -1,
      34,    -1,    -1,    -1,    38,    -1,    -1,    41,    42,    43,
      -1,    45,    -1,    -1,    -1,    -1,    -1,    51,    52,    -1,
      54,    -1,    56,    -1,    -1,    -1,    -1,    61,    62,    63,
      64,    65,    -1,    67,    68,    -1,    -1,    71,    -1,    73,
      74,    75,    76,    -1,    78,    79,    -1,    -1,    82,    -1,
      84,    -1,    -1,    87,    -1,    -1,    90,    -1,    -1,    -1,
      -1,    -1,    -1,    97,    98,    99,    -1,    -1,   102,    -1,
      -1,    -1,    -1,   107,    -1,    -1,    -1,    -1,    -1,   113,
      -1,   115,    -1,    -1,    -1,   119,    -1,   121,   122,   123,
     124,    -1,    -1,    -1,    -1,    -1,    -1,   131,   132,   133,
      -1,    -1,    -1,   137,    -1,   139,   140,    -1,   142,   143,
     144,    -1,    -1,   147,    -1,   149,   150,   151,   152,    -1,
      -1,    -1,   156,   157,   158,    -1,    -1,   161,   162,   163,
     164,   165,   166,    -1,    -1,    -1,    -1,    -1,    -1,   173,
     174,    -1,   176,    -1,   178,    -1,   180,   181,   182,   183,
      -1,   185,    -1,    -1,    -1,    -1,   190,    -1,    -1,    -1,
      -1,    -1,   196,    -1,    -1,    -1,   200,   201,   202,   203,
     204,    -1,   206,   207,    -1,    -1,   210,    -1,   212,    -1,
      -1,    -1,   216,    -1,    -1,    -1,    -1,   221,    -1,   223,
     224,    -1,   226,   227,   228,    -1,    -1,   231,    -1,    -1,
      -1,   235,    -1,    -1,   238,   239,    -1,   241,   242,    -1,
      -1,    -1,    -1,    -1,   248,   249,    -1,   251,    -1,   253,
      -1,   255,   256,    -1,    -1,    -1,    -1,   261,    -1,    -1,
     264,   265,   266,   267,   268,   269,   270,   271,   272,   273,
     274,   275,   276,    -1,   278,   279,    -1,   281,   282,   283,
     284,    -1,   286,   287,   288,    -1,    -1,    -1,   292,   293,
     294,   295,   296,    -1,    -1,   299,   300,    -1,   302,    -1,
     304,    -1,   306,   307,   308,   309,   310,   311,   312,   313,
      -1,    -1,   316,   317,    -1,    -1,   320,   321,   322,   323,
      -1,    -1,    -1,    -1,   328,    -1,    -1,    -1,    -1,   333,
     334,   335,    -1,   337,   338,   339,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   352,   353,
      -1,    -1,   356,   357,   358,    -1,   360,   361,   362,   363,
     364,   365,    -1,    -1,    -1,    -1,   370,   371,    -1,   373,
      -1,   375,   376,   377,   378,    -1,   380,   381,   382,    -1,
      -1,   385,    -1,    -1,    -1,   389,   390,   391,   392,   393,
      -1,    -1,   396,   397,   398,    -1,   400,    -1,    -1,   403,
      -1,   405,   406,    -1,   408,    -1,    -1,   411,    -1,    -1,
     414,   415,   416,    -1,    -1,    -1,   420,   421,   422,   423,
     424,   425,    -1,   427,    -1,   429,    -1,    -1,    -1,    -1,
     434,   435,   436,    -1,    -1,    -1,    -1,   441,    -1,    -1,
      -1,   445,    -1,   447,    -1,    -1,   450,    -1,    -1,   453,
     454,    -1,    -1,    -1,    -1,    -1,    -1,   461,   462,    -1,
     464,    -1,    -1,   467,    -1,    -1,   470,    -1,   472,    -1,
      -1,    -1,   476,    -1,   478,   479,   480,   481,   482,    -1,
      -1,   485,   486,   487,   488,    -1,   490,   491,    -1,    -1,
     494,   495,   496,    -1,    -1,   499,   500,    -1,   502,   503,
     504,   505,    -1,    -1,    -1,    -1,    -1,   511,   512,    -1,
      -1,    -1,    -1,   517,   518,   519,    -1,   521,   522,    -1,
     524,   525,    -1,    -1,    -1,    -1,    -1,   531,    -1,    -1,
     534,    -1,    -1,    -1,   538,   539,    -1,    -1,    -1,    -1,
      -1,    -1,   546,    -1,    -1,   549,    -1,    -1,    -1,   553,
     554,   555,   556,    -1,    -1,   559,    -1,   561,    -1,    -1,
     564,    -1,    -1,     5,   568,     7,     8,     9,    10,    11,
      -1,    -1,    -1,    -1,    -1,    17,    -1,    -1,    -1,    -1,
      22,    23,    24,    25,    26,    27,    -1,    -1,    30,    -1,
      -1,    -1,    34,    -1,    -1,    -1,    38,    -1,    -1,    41,
      42,    43,    -1,    45,    -1,    -1,    -1,    -1,    -1,    51,
      52,    -1,    54,    -1,    56,    -1,    -1,    -1,    -1,    61,
      62,    63,    64,    65,    -1,    67,    68,    -1,    -1,    71,
      -1,    73,    74,    75,    76,    -1,    78,    79,    -1,    -1,
      82,    -1,    84,    -1,    -1,    87,    -1,    -1,    90,    -1,
      -1,    -1,    -1,    -1,    -1,    97,    98,    99,    -1,    -1,
     102,    -1,    -1,    -1,    -1,   107,    -1,    -1,    -1,    -1,
      -1,   113,    -1,   115,    -1,    -1,    -1,   119,    -1,   121,
     122,   123,   124,    -1,    -1,    -1,    -1,    -1,    -1,   131,
     132,   133,    -1,    -1,    -1,   137,    -1,   139,   140,    -1,
     142,   143,   144,    -1,    -1,   147,    -1,   149,   150,   151,
     152,    -1,    -1,    -1,   156,   157,   158,    -1,    -1,   161,
     162,   163,   164,   165,   166,    -1,    -1,    -1,    -1,    -1,
      -1,   173,   174,    -1,   176,    -1,   178,    -1,   180,   181,
     182,   183,    -1,   185,    -1,    -1,    -1,    -1,   190,    -1,
      -1,    -1,    -1,    -1,   196,    -1,    -1,    -1,   200,   201,
     202,   203,   204,    -1,   206,   207,    -1,    -1,   210,    -1,
     212,    -1,    -1,    -1,   216,    -1,    -1,    -1,    -1,   221,
      -1,   223,   224,    -1,   226,   227,   228,    -1,    -1,   231,
      -1,    -1,    -1,   235,    -1,    -1,   238,   239,    -1,   241,
     242,    -1,    -1,    -1,    -1,    -1,   248,   249,    -1,   251,
      -1,   253,    -1,   255,   256,    -1,    -1,    -1,    -1,   261,
      -1,    -1,   264,   265,   266,   267,   268,   269,   270,   271,
     272,   273,   274,   275,   276,    -1,   278,   279,    -1,   281,
     282,   283,   284,    -1,   286,   287,   288,    -1,    -1,    -1,
     292,   293,   294,   295,   296,    -1,    -1,   299,   300,    -1,
     302,    -1,   304,    -1,   306,   307,   308,   309,   310,   311,
     312,   313,    -1,    -1,   316,   317,    -1,    -1,   320,   321,
     322,   323,    -1,    -1,    -1,    -1,   328,    -1,    -1,    -1,
      -1,   333,   334,   335,    -1,   337,   338,   339,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     352,   353,    -1,    -1,   356,   357,   358,    -1,   360,   361,
     362,   363,   364,   365,    -1,    -1,    -1,    -1,   370,   371,
      -1,   373,    -1,   375,   376,   377,   378,    -1,   380,   381,
     382,    -1,    -1,   385,    -1,    -1,    -1,   389,   390,   391,
     392,   393,    -1,    -1,   396,   397,   398,    -1,   400,    -1,
      -1,   403,    -1,   405,   406,    -1,   408,    -1,    -1,   411,
      -1,    -1,   414,   415,   416,    -1,    -1,    -1,   420,   421,
     422,   423,   424,   425,    -1,   427,    -1,   429,    -1,    -1,
      -1,    -1,   434,   435,   436,    -1,    -1,    -1,    -1,   441,
      -1,    -1,    -1,   445,    -1,   447,    -1,    -1,   450,    -1,
      -1,   453,   454,    -1,    -1,    -1,    -1,    -1,    -1,   461,
     462,    -1,   464,    -1,    -1,   467,    -1,    -1,   470,    -1,
     472,    -1,    -1,    -1,   476,    -1,   478,   479,   480,   481,
     482,    -1,    -1,   485,   486,   487,   488,    -1,   490,   491,
      -1,    -1,   494,   495,   496,    -1,    -1,   499,   500,    -1,
     502,   503,   504,   505,    -1,    -1,    -1,    -1,    -1,   511,
     512,    -1,    -1,    -1,    -1,   517,   518,   519,    -1,   521,
     522,    -1,   524,   525,    -1,    -1,    -1,    -1,    -1,   531,
      -1,    -1,   534,    -1,    -1,    -1,   538,   539,    -1,    -1,
      -1,    -1,    -1,    -1,   546,    -1,    -1,   549,    -1,    -1,
      -1,   553,   554,   555,   556,    -1,    -1,   559,    -1,   561,
      -1,    -1,   564,    -1,    -1,     5,   568,     7,     8,     9,
      10,    11,    -1,    -1,    -1,    -1,    -1,    17,    -1,    -1,
      -1,    -1,    22,    23,    24,    25,    26,    27,    -1,    -1,
      30,    -1,    -1,    -1,    34,    -1,    -1,    -1,    38,    -1,
      -1,    41,    42,    43,    -1,    45,    -1,    -1,    -1,    -1,
      -1,    51,    52,    -1,    54,    -1,    56,    -1,    -1,    -1,
      -1,    61,    62,    63,    64,    65,    -1,    67,    68,    -1,
      -1,    71,    -1,    73,    74,    75,    76,    -1,    78,    79,
      -1,    -1,    82,    -1,    84,    -1,    -1,    87,    -1,    -1,
      90,    -1,    -1,    -1,    -1,    -1,    -1,    97,    98,    99,
      -1,    -1,   102,    -1,    -1,    -1,    -1,   107,    -1,    -1,
      -1,    -1,    -1,   113,    -1,   115,    -1,    -1,    -1,   119,
      -1,   121,   122,   123,   124,    -1,    -1,    -1,    -1,    -1,
      -1,   131,   132,   133,    -1,    -1,    -1,   137,    -1,   139,
     140,    -1,   142,   143,   144,    -1,    -1,   147,    -1,   149,
     150,   151,   152,    -1,    -1,    -1,   156,   157,   158,    -1,
      -1,   161,   162,   163,   164,   165,   166,    -1,    -1,    -1,
      -1,    -1,    -1,   173,   174,    -1,   176,    -1,   178,    -1,
     180,   181,   182,   183,    -1,   185,    -1,    -1,    -1,    -1,
     190,    -1,    -1,    -1,    -1,    -1,   196,    -1,    -1,    -1,
     200,   201,   202,   203,   204,    -1,   206,   207,    -1,    -1,
     210,    -1,   212,    -1,    -1,    -1,   216,    -1,    -1,    -1,
      -1,   221,    -1,   223,   224,    -1,   226,   227,   228,    -1,
      -1,   231,    -1,    -1,    -1,   235,    -1,    -1,   238,   239,
      -1,   241,   242,    -1,    -1,    -1,    -1,    -1,   248,   249,
      -1,   251,    -1,   253,    -1,   255,   256,    -1,    -1,    -1,
      -1,   261,    -1,    -1,   264,   265,   266,   267,   268,   269,
     270,   271,   272,   273,   274,   275,   276,    -1,   278,   279,
      -1,   281,   282,   283,   284,    -1,   286,   287,   288,    -1,
      -1,    -1,   292,   293,   294,   295,   296,    -1,    -1,   299,
     300,    -1,   302,    -1,   304,    -1,   306,   307,   308,   309,
     310,   311,   312,   313,    -1,    -1,   316,   317,    -1,    -1,
     320,   321,   322,   323,    -1,    -1,    -1,    -1,   328,    -1,
      -1,    -1,    -1,   333,   334,   335,    -1,   337,   338,   339,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   352,   353,    -1,    -1,   356,   357,   358,    -1,
     360,   361,   362,   363,   364,   365,    -1,    -1,    -1,    -1,
     370,   371,    -1,   373,    -1,   375,   376,   377,   378,    -1,
     380,   381,   382,    -1,    -1,   385,    -1,    -1,    -1,   389,
     390,   391,   392,   393,    -1,    -1,   396,   397,   398,    -1,
     400,    -1,    -1,   403,    -1,   405,   406,    -1,   408,    -1,
      -1,   411,    -1,    -1,   414,   415,   416,    -1,    -1,    -1,
     420,   421,   422,   423,   424,   425,    -1,   427,    -1,   429,
      -1,    -1,    -1,    -1,   434,   435,   436,    -1,    -1,    -1,
      -1,   441,    -1,    -1,    -1,   445,    -1,   447,    -1,    -1,
     450,    -1,    -1,   453,   454,    -1,    -1,    -1,    -1,    -1,
      -1,   461,   462,    -1,   464,    -1,    -1,   467,    -1,    -1,
     470,    -1,   472,    -1,    -1,    -1,   476,    -1,   478,   479,
     480,   481,   482,    -1,    -1,   485,   486,   487,   488,    -1,
     490,   491,    -1,    -1,   494,   495,   496,    -1,    -1,   499,
     500,    -1,   502,   503,   504,   505,    -1,    -1,    -1,    -1,
      -1,   511,   512,    -1,    -1,    -1,    -1,   517,   518,   519,
      -1,   521,   522,    -1,   524,   525,    -1,    -1,    -1,    -1,
      -1,   531,    -1,    -1,   534,    -1,    -1,    -1,   538,   539,
      -1,    -1,    -1,    -1,    -1,    -1,   546,    -1,    -1,   549,
      -1,    -1,    -1,   553,   554,   555,   556,    -1,    -1,   559,
      -1,   561,    -1,    -1,   564,    -1,    -1,     5,   568,     7,
       8,     9,    10,    11,    -1,    -1,    -1,    -1,    -1,    17,
      -1,    -1,    -1,    -1,    22,    23,    24,    25,    26,    27,
      -1,    -1,    30,    -1,    -1,    -1,    34,    -1,    -1,    -1,
      38,    -1,    -1,    41,    42,    43,    -1,    45,    -1,    -1,
      -1,    -1,    -1,    51,    52,    -1,    54,    -1,    56,    -1,
      -1,    -1,    -1,    61,    62,    63,    64,    65,    -1,    67,
      68,    -1,    -1,    71,    -1,    73,    74,    75,    76,    -1,
      78,    79,    -1,    -1,    82,    -1,    84,    -1,    -1,    87,
      -1,    -1,    90,    -1,    -1,    -1,    -1,    -1,    -1,    97,
      98,    99,    -1,    -1,   102,    -1,    -1,    -1,    -1,   107,
      -1,    -1,    -1,    -1,    -1,   113,    -1,   115,    -1,    -1,
      -1,   119,    -1,   121,   122,   123,   124,    -1,    -1,    -1,
      -1,    -1,    -1,   131,   132,   133,    -1,    -1,    -1,   137,
      -1,   139,   140,    -1,   142,   143,   144,    -1,    -1,   147,
      -1,   149,   150,   151,   152,    -1,    -1,    -1,   156,   157,
     158,    -1,    -1,   161,   162,   163,   164,   165,   166,    -1,
      -1,    -1,    -1,    -1,    -1,   173,   174,    -1,   176,    -1,
     178,    -1,   180,   181,   182,   183,    -1,   185,    -1,    -1,
      -1,    -1,   190,    -1,    -1,    -1,    -1,    -1,   196,    -1,
      -1,    -1,   200,   201,   202,   203,   204,    -1,   206,   207,
      -1,    -1,   210,    -1,   212,    -1,    -1,    -1,   216,    -1,
      -1,    -1,    -1,   221,    -1,   223,   224,    -1,   226,   227,
     228,    -1,    -1,   231,    -1,    -1,    -1,   235,    -1,    -1,
     238,   239,    -1,   241,   242,    -1,    -1,    -1,    -1,    -1,
     248,   249,    -1,   251,    -1,   253,    -1,   255,   256,    -1,
      -1,    -1,    -1,   261,    -1,    -1,   264,   265,   266,   267,
     268,   269,   270,   271,   272,   273,   274,   275,   276,    -1,
     278,   279,    -1,   281,   282,   283,   284,    -1,   286,   287,
     288,    -1,    -1,    -1,   292,   293,   294,   295,   296,    -1,
      -1,   299,   300,    -1,   302,    -1,   304,    -1,   306,   307,
     308,   309,   310,   311,   312,   313,    -1,    -1,   316,   317,
      -1,    -1,   320,   321,   322,   323,    -1,    -1,    -1,    -1,
     328,    -1,    -1,    -1,    -1,   333,   334,   335,    -1,   337,
     338,   339,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   352,   353,    -1,    -1,   356,   357,
     358,    -1,   360,   361,   362,   363,   364,   365,    -1,    -1,
      -1,    -1,   370,   371,    -1,   373,    -1,   375,   376,   377,
     378,    -1,   380,   381,   382,    -1,    -1,   385,    -1,    -1,
      -1,   389,   390,   391,   392,   393,    -1,    -1,   396,   397,
     398,    -1,   400,    -1,    -1,   403,    -1,   405,   406,    -1,
     408,    -1,    -1,   411,    -1,    -1,   414,   415,   416,    -1,
      -1,    -1,   420,   421,   422,   423,   424,   425,    -1,   427,
      -1,   429,    -1,    -1,    -1,    -1,   434,   435,   436,    -1,
      -1,    -1,    -1,   441,    -1,    -1,    -1,   445,    -1,   447,
      -1,    -1,   450,    -1,    -1,   453,   454,    -1,    -1,    -1,
      -1,    -1,    -1,   461,   462,    -1,   464,    -1,    -1,   467,
      -1,    -1,   470,    -1,   472,    -1,    -1,    -1,   476,    -1,
     478,   479,   480,   481,   482,    -1,    -1,   485,   486,   487,
     488,    -1,   490,   491,    -1,    -1,   494,   495,   496,    -1,
      -1,   499,   500,    -1,   502,   503,   504,   505,    -1,    -1,
      -1,    -1,    -1,   511,   512,    -1,    -1,    -1,    -1,   517,
     518,   519,    -1,   521,   522,    -1,   524,   525,    -1,    -1,
      -1,    -1,    -1,   531,    -1,    -1,   534,    -1,    -1,    -1,
     538,   539,    -1,    -1,    -1,    -1,    -1,    -1,   546,    -1,
      -1,   549,    -1,    -1,    -1,   553,   554,   555,   556,    -1,
      -1,   559,    -1,   561,    -1,    -1,   564,    -1,    -1,     5,
     568,     7,     8,     9,    10,    11,    -1,    -1,    -1,    -1,
      -1,    17,    -1,    -1,    -1,    -1,    22,    23,    24,    25,
      26,    27,    -1,    -1,    30,    -1,    -1,    -1,    34,    -1,
      -1,    -1,    38,    -1,    -1,    41,    42,    43,    -1,    45,
      -1,    -1,    -1,    -1,    -1,    51,    52,    -1,    54,    -1,
      56,    -1,    -1,    -1,    -1,    61,    62,    63,    64,    65,
      -1,    67,    68,    -1,    -1,    71,    -1,    73,    74,    75,
      76,    -1,    78,    79,    -1,    -1,    82,    -1,    84,    -1,
      -1,    87,    -1,    -1,    90,    -1,    -1,    -1,    -1,    -1,
      -1,    97,    98,    99,    -1,    -1,   102,    -1,    -1,    -1,
      -1,   107,    -1,    -1,    -1,    -1,    -1,   113,    -1,   115,
      -1,    -1,    -1,   119,    -1,   121,   122,   123,   124,    -1,
      -1,    -1,    -1,    -1,    -1,   131,   132,   133,    -1,    -1,
      -1,   137,    -1,    -1,   140,    -1,   142,   143,   144,    -1,
      -1,   147,    -1,   149,   150,   151,   152,    -1,    -1,    -1,
     156,   157,   158,    -1,    -1,   161,   162,   163,   164,   165,
     166,    -1,    -1,    -1,    -1,    -1,    -1,   173,   174,    -1,
     176,    -1,   178,    -1,   180,   181,   182,   183,    -1,   185,
      -1,    -1,    -1,    -1,   190,    -1,    -1,    -1,    -1,    -1,
     196,    -1,    -1,    -1,   200,   201,   202,   203,   204,    -1,
     206,   207,    -1,    -1,   210,    -1,   212,    -1,    -1,    -1,
     216,    -1,    -1,    -1,    -1,   221,    -1,   223,   224,    -1,
     226,   227,   228,    -1,    -1,   231,    -1,    -1,    -1,   235,
      -1,    -1,   238,   239,    -1,   241,   242,    -1,    -1,    -1,
      -1,    -1,   248,   249,    -1,   251,    -1,   253,    -1,   255,
     256,    -1,    -1,    -1,    -1,   261,    -1,    -1,   264,   265,
     266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
     276,    -1,   278,   279,    -1,   281,   282,   283,   284,    -1,
     286,   287,   288,    -1,    -1,    -1,   292,   293,   294,   295,
     296,    -1,    -1,   299,   300,    -1,   302,    -1,   304,    -1,
     306,   307,   308,   309,   310,   311,   312,   313,    -1,    -1,
     316,   317,    -1,    -1,   320,   321,   322,   323,    -1,    -1,
      -1,    -1,   328,    -1,    -1,    -1,    -1,   333,   334,   335,
      -1,   337,   338,   339,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   352,   353,    -1,    -1,
     356,   357,   358,    -1,   360,   361,   362,   363,   364,   365,
      -1,    -1,    -1,    -1,   370,   371,    -1,   373,    -1,   375,
     376,   377,   378,    -1,   380,   381,   382,    -1,    -1,   385,
      -1,    -1,    -1,   389,   390,   391,   392,   393,    -1,    -1,
     396,   397,   398,    -1,   400,    -1,    -1,   403,    -1,   405,
     406,    -1,   408,    -1,    -1,   411,    -1,    -1,   414,   415,
     416,    -1,    -1,    -1,   420,   421,   422,   423,   424,   425,
      -1,   427,    -1,   429,    -1,    -1,    -1,    -1,   434,   435,
     436,    -1,    -1,    -1,    -1,   441,    -1,    -1,    -1,   445,
      -1,   447,    -1,    -1,   450,    -1,    -1,   453,   454,    -1,
      -1,    -1,    -1,    -1,    -1,   461,   462,    -1,   464,    -1,
      -1,   467,    -1,    -1,   470,    -1,   472,    -1,    -1,    -1,
     476,    -1,   478,   479,   480,   481,   482,    -1,    -1,   485,
     486,   487,   488,    -1,   490,   491,    -1,    -1,   494,   495,
     496,    -1,    -1,   499,   500,    -1,   502,   503,   504,   505,
      -1,    -1,    -1,    -1,    -1,   511,   512,    -1,    -1,    -1,
      -1,   517,   518,   519,    -1,   521,   522,    -1,   524,   525,
      -1,    -1,    -1,    -1,    -1,   531,    -1,    -1,   534,    -1,
      -1,    -1,   538,   539,    -1,    -1,    -1,    -1,    -1,    -1,
     546,    -1,    -1,   549,    -1,    -1,    -1,   553,   554,   555,
     556,    -1,    -1,   559,    -1,   561,    -1,    -1,   564,    -1,
      -1,     5,   568,     7,     8,     9,    10,    11,    -1,    -1,
      -1,    -1,    -1,    17,    -1,    -1,    -1,    -1,    22,    23,
      24,    25,    26,    27,    -1,    -1,    30,    -1,    -1,    -1,
      34,    -1,    -1,    -1,    38,    -1,    -1,    41,    42,    43,
      -1,    45,    -1,    -1,    -1,    -1,    -1,    51,    52,    -1,
      54,    -1,    56,    -1,    -1,    -1,    -1,    61,    62,    63,
      64,    65,    -1,    67,    68,    -1,    -1,    71,    -1,    73,
      74,    75,    76,    -1,    78,    79,    -1,    -1,    82,    -1,
      84,    -1,    -1,    87,    -1,    -1,    90,    -1,    -1,    -1,
      -1,    -1,    -1,    97,    98,    99,    -1,    -1,   102,    -1,
      -1,    -1,    -1,   107,    -1,    -1,    -1,    -1,    -1,   113,
      -1,   115,    -1,    -1,    -1,   119,    -1,   121,   122,   123,
     124,    -1,    -1,    -1,    -1,    -1,    -1,   131,   132,   133,
      -1,    -1,    -1,   137,    -1,    -1,   140,    -1,   142,   143,
     144,    -1,    -1,   147,    -1,   149,   150,   151,   152,    -1,
      -1,    -1,   156,   157,   158,    -1,    -1,   161,   162,   163,
     164,   165,   166,    -1,    -1,    -1,    -1,    -1,    -1,   173,
     174,    -1,   176,    -1,   178,    -1,   180,   181,   182,   183,
      -1,   185,    -1,    -1,    -1,    -1,   190,    -1,    -1,    -1,
      -1,    -1,   196,    -1,    -1,    -1,   200,   201,   202,   203,
     204,    -1,   206,   207,    -1,    -1,   210,    -1,   212,    -1,
      -1,    -1,   216,    -1,    -1,    -1,    -1,   221,    -1,   223,
     224,    -1,   226,   227,   228,    -1,    -1,   231,    -1,    -1,
      -1,   235,    -1,    -1,   238,   239,    -1,   241,   242,    -1,
      -1,    -1,    -1,    -1,   248,   249,    -1,   251,    -1,   253,
      -1,   255,   256,    -1,    -1,    -1,    -1,   261,    -1,    -1,
     264,   265,   266,   267,   268,   269,   270,   271,   272,   273,
     274,   275,   276,    -1,   278,   279,    -1,   281,   282,   283,
     284,    -1,   286,   287,   288,    -1,    -1,    -1,   292,   293,
     294,   295,   296,    -1,    -1,   299,   300,    -1,   302,    -1,
     304,    -1,   306,   307,   308,   309,   310,   311,   312,   313,
      -1,    -1,   316,   317,    -1,    -1,   320,   321,   322,   323,
      -1,    -1,    -1,    -1,   328,    -1,    -1,    -1,    -1,   333,
     334,   335,    -1,   337,   338,   339,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   352,   353,
      -1,    -1,   356,   357,   358,    -1,   360,   361,   362,   363,
     364,   365,    -1,    -1,    -1,    -1,   370,   371,    -1,   373,
      -1,   375,   376,   377,   378,    -1,   380,   381,   382,    -1,
      -1,   385,    -1,    -1,    -1,   389,   390,   391,   392,   393,
      -1,    -1,   396,   397,   398,    -1,   400,    -1,    -1,   403,
      -1,   405,   406,    -1,   408,    -1,    -1,   411,    -1,    -1,
     414,   415,   416,    -1,    -1,    -1,   420,   421,   422,   423,
     424,   425,    -1,   427,    -1,   429,    -1,    -1,    -1,    -1,
     434,   435,   436,    -1,    -1,    -1,    -1,   441,    -1,    -1,
      -1,   445,    -1,   447,    -1,    -1,   450,    -1,    -1,   453,
     454,    -1,    -1,    -1,    -1,    -1,    -1,   461,   462,    -1,
     464,    -1,    -1,   467,    -1,    -1,   470,    -1,   472,    -1,
      -1,    -1,   476,    -1,   478,   479,   480,   481,   482,    -1,
      -1,   485,   486,   487,   488,    -1,   490,   491,    -1,    -1,
     494,   495,   496,    -1,    -1,   499,   500,    -1,   502,   503,
     504,   505,    -1,    -1,    -1,    -1,    -1,   511,   512,    -1,
      -1,    -1,    -1,   517,   518,   519,    -1,   521,   522,    -1,
     524,   525,    -1,    -1,    -1,    -1,    -1,   531,    -1,    -1,
     534,    -1,    -1,    -1,   538,   539,    -1,    -1,    -1,    -1,
      -1,    -1,   546,    -1,    -1,   549,    -1,    -1,    -1,   553,
     554,   555,   556,    -1,    -1,   559,    -1,   561,    -1,    -1,
     564,    -1,    -1,     5,   568,     7,     8,     9,    10,    11,
      -1,    -1,    -1,    -1,    -1,    17,    -1,    -1,    -1,    -1,
      22,    23,    24,    25,    26,    27,    -1,    -1,    -1,    -1,
      -1,    -1,    34,    -1,    -1,    -1,    38,    -1,    -1,    41,
      42,    43,    -1,    45,    -1,    -1,    -1,    -1,    -1,    51,
      -1,    -1,    54,    -1,    56,    -1,    -1,    -1,    -1,    61,
      62,    -1,    64,    65,    -1,    67,    68,    -1,    -1,    71,
      -1,    73,    74,    75,    76,    -1,    78,    79,    -1,    -1,
      82,    -1,    84,    -1,    -1,    87,    -1,    -1,    90,    -1,
      -1,    -1,    -1,    -1,    -1,    97,    98,    99,    -1,    -1,
     102,    -1,    -1,    -1,    -1,   107,    -1,    -1,    -1,    -1,
      -1,   113,    -1,   115,    -1,    -1,    -1,   119,    -1,   121,
     122,   123,   124,    -1,    -1,    -1,    -1,    -1,    -1,   131,
     132,   133,    -1,    -1,    -1,   137,    -1,    -1,   140,    -1,
     142,   143,   144,    -1,    -1,   147,    -1,   149,   150,   151,
     152,    -1,    -1,    -1,   156,   157,   158,    -1,    -1,   161,
     162,    -1,   164,   165,   166,    -1,    -1,    -1,    -1,    -1,
      -1,   173,   174,    -1,   176,    -1,   178,    -1,   180,   181,
     182,   183,    -1,   185,    -1,    -1,    -1,    -1,   190,    -1,
      -1,    -1,    -1,    -1,   196,    -1,    -1,    -1,   200,   201,
     202,   203,    -1,    -1,   206,   207,    -1,    -1,   210,    -1,
     212,    -1,    -1,    -1,   216,    -1,    -1,    -1,    -1,   221,
      -1,   223,   224,    -1,   226,   227,    -1,    -1,    -1,   231,
      -1,    -1,    -1,   235,    -1,    -1,   238,    -1,    -1,   241,
     242,    -1,    -1,    -1,    -1,    -1,   248,   249,    -1,   251,
      -1,   253,    -1,   255,   256,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   264,   265,   266,   267,   268,   269,   270,   271,
     272,   273,   274,   275,   276,    -1,   278,   279,    -1,   281,
     282,   283,   284,    -1,   286,   287,   288,    -1,    -1,    -1,
     292,   293,   294,   295,   296,    -1,    -1,   299,   300,    -1,
     302,    -1,   304,    -1,   306,   307,   308,   309,   310,   311,
     312,   313,    -1,    -1,   316,   317,    -1,    -1,   320,   321,
     322,   323,    -1,    -1,    -1,    -1,   328,    -1,    -1,    -1,
      -1,   333,   334,   335,    -1,   337,   338,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     352,   353,    -1,    -1,   356,   357,   358,    -1,   360,   361,
     362,   363,   364,   365,    -1,    -1,    -1,    -1,   370,   371,
      -1,   373,    -1,   375,   376,   377,   378,    -1,   380,   381,
     382,    -1,    -1,   385,    -1,    -1,    -1,   389,   390,   391,
     392,   393,    -1,    -1,   396,   397,   398,    -1,   400,    -1,
      -1,   403,    -1,   405,    -1,    -1,   408,    -1,    -1,   411,
      -1,    -1,   414,   415,    -1,    -1,    -1,    -1,   420,   421,
     422,   423,   424,   425,    -1,   427,    -1,   429,    -1,    -1,
      -1,    -1,   434,   435,   436,    -1,    -1,    -1,    -1,   441,
      -1,    -1,    -1,   445,    -1,   447,    -1,    -1,   450,    -1,
      -1,   453,   454,    -1,    -1,    -1,    -1,    -1,    -1,   461,
     462,    -1,   464,    -1,    -1,   467,    -1,    -1,   470,    -1,
     472,    -1,    -1,    -1,   476,    -1,   478,   479,   480,   481,
     482,    -1,    -1,   485,   486,   487,   488,    -1,   490,   491,
      -1,    -1,   494,   495,   496,    -1,    -1,   499,   500,    -1,
     502,   503,   504,   505,    -1,    -1,    -1,    -1,    -1,   511,
     512,    -1,    -1,    -1,    -1,   517,   518,   519,    -1,   521,
     522,    -1,   524,   525,    -1,    -1,    -1,    -1,    -1,   531,
      -1,    -1,   534,    -1,    -1,    -1,   538,   539,    -1,    -1,
      -1,    -1,    -1,    -1,   546,    -1,    -1,   549,    -1,    -1,
      -1,   553,   554,   555,   556,    -1,    -1,    -1,    -1,   561,
      -1,    -1,   564,    -1,    -1,    -1,   568
};

/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
   symbol of state STATE-NUM.  */
static const yytype_uint16 yystos[] =
{
       0,    13,    14,    28,    30,    34,    48,    49,    55,    59,
      60,    72,    88,   108,   116,   117,   118,   128,   129,   141,
     153,   169,   184,   189,   192,   215,   217,   233,   250,   254,
     340,   359,   369,   379,   399,   402,   404,   407,   410,   412,
     417,   419,   426,   431,   439,   444,   448,   471,   475,   516,
     528,   532,   535,   540,   565,   579,   590,   593,   594,   595,
     596,   597,   599,   604,   606,   611,   641,   773,   918,   956,
     959,   967,   969,   971,   974,   979,   981,   982,   987,   990,
     995,   999,  1007,  1008,  1157,  1159,  1167,  1170,  1195,  1203,
    1214,  1220,  1233,  1236,  1239,  1245,  1249,  1253,  1255,  1256,
    1302,  1319,  1325,  1327,  1334,  1336,  1361,  1367,  1368,  1369,
    1370,  1417,  1425,  1426,    11,    95,   113,   178,   205,   255,
     374,   437,   491,   952,  1386,  1387,  1388,  1391,   251,   329,
     989,   490,   493,  1321,  1362,   498,  1293,   208,     5,     7,
       8,     9,    10,    11,    17,    20,    22,    23,    24,    25,
      26,    27,    28,    30,    34,    38,    41,    42,    43,    45,
      47,    48,    51,    54,    56,    57,    59,    61,    62,    63,
      64,    65,    67,    68,    70,    71,    72,    73,    74,    75,
      76,    78,    79,    81,    82,    84,    87,    90,    97,    98,
      99,   102,   107,   108,   113,   115,   119,   121,   122,   123,
     124,   128,   131,   132,   133,   137,   139,   140,   142,   143,
     144,   147,   149,   150,   151,   152,   153,   156,   157,   158,
     161,   162,   164,   165,   166,   169,   173,   174,   176,   178,
     180,   181,   182,   183,   185,   189,   190,   192,   195,   196,
     200,   201,   202,   203,   206,   207,   210,   212,   216,   217,
     221,   223,   224,   226,   227,   231,   234,   235,   238,   241,
     242,   248,   249,   251,   253,   255,   256,   264,   265,   266,
     267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
     278,   279,   281,   282,   283,   284,   286,   287,   288,   292,
     293,   294,   295,   296,   299,   300,   302,   304,   306,   307,
     308,   309,   310,   311,   312,   313,   316,   317,   320,   321,
     322,   323,   327,   328,   333,   334,   335,   337,   338,   339,
     341,   351,   352,   353,   355,   356,   357,   358,   359,   360,
     361,   362,   363,   364,   365,   366,   369,   370,   371,   373,
     375,   376,   377,   378,   380,   381,   382,   385,   389,   390,
     391,   392,   393,   396,   397,   398,   400,   401,   403,   404,
     405,   408,   410,   411,   412,   414,   415,   419,   420,   421,
     422,   423,   424,   425,   426,   427,   429,   430,   434,   435,
     436,   437,   441,   445,   446,   447,   448,   450,   451,   452,
     453,   454,   461,   462,   464,   467,   470,   471,   472,   475,
     476,   478,   479,   480,   481,   482,   485,   486,   487,   488,
     490,   491,   494,   495,   496,   499,   500,   502,   503,   504,
     505,   511,   512,   516,   517,   518,   519,   521,   522,   524,
     525,   527,   528,   531,   534,   536,   538,   539,   546,   549,
     553,   554,   555,   556,   561,   562,   564,   565,   568,   635,
    1292,  1296,  1300,  1301,   278,  1321,  1321,   561,  1363,    95,
     177,   255,   437,   455,   491,   495,   530,   538,   617,   618,
     821,   822,   823,   896,   897,   898,  1204,  1158,    95,   151,
     178,   208,   255,   374,   437,   491,   495,   513,   538,   553,
    1166,  1296,   989,   634,   587,  1289,  1291,  1296,   605,  1168,
     363,    78,   381,  1254,    98,   208,   493,  1321,   989,   774,
    1296,  1250,   426,   538,  1321,   989,  1171,  1246,  1321,   634,
    1363,  1296,  1010,  1012,  1013,   342,  1304,  1221,   471,   475,
     448,   511,   448,   493,  1215,   363,  1326,  1196,  1296,    30,
      72,   139,   369,   390,   419,   471,  1419,   431,   579,  1009,
       0,   141,   591,   369,   157,   358,  1237,  1289,  1296,   145,
     929,  1296,   145,   635,   186,   635,   243,  1293,  1296,  1298,
     722,   723,   726,   749,  1296,   493,   151,   924,  1386,  1321,
     970,  1363,   996,   997,  1289,   642,   587,   509,   972,   983,
      16,  1364,   204,   824,   186,  1298,   724,   749,   634,   347,
    1383,  1387,  1388,  1389,  1390,  1391,   493,   822,   208,   208,
     208,   205,   262,   382,  1212,  1213,     7,    20,    27,    33,
      35,    36,    37,    39,    52,    53,    57,    58,    64,    67,
      81,    85,    86,    91,    92,    94,    95,   100,   101,   102,
     107,   109,   112,   154,   159,   160,   167,   180,   182,   187,
     193,   200,   204,   215,   218,   240,   248,   259,   280,   285,
     295,   299,   301,   305,   306,   307,   308,   309,   315,   324,
     325,   326,   330,   331,   335,   354,   360,   364,   365,   367,
     380,   406,   407,   418,   424,   429,   473,   474,   479,   483,
     484,   489,   498,   502,   503,   504,   505,   514,   515,   516,
     520,   523,   538,   542,   543,   544,   545,   550,   552,   556,
     568,   572,   573,   578,   579,   582,   583,   586,   587,  1028,
    1029,  1030,  1031,  1035,  1038,  1039,  1040,  1041,  1042,  1043,
    1051,  1055,  1065,  1276,  1278,  1280,  1281,  1285,  1287,  1292,
    1296,   204,  1165,  1165,  1165,  1296,   186,  1165,  1165,   749,
    1165,   634,  1165,  1321,   600,  1240,    12,    13,    88,   116,
     129,   151,   153,   164,   184,   208,   215,   254,   375,   394,
     400,   408,   431,   444,   445,   485,   513,   535,   537,  1337,
    1339,  1341,  1342,  1296,   339,    63,   386,   587,  1298,   114,
     194,   262,  1173,  1296,  1028,  1257,   219,  1289,  1320,  1321,
      46,   775,   175,    33,   278,  1225,  1251,  1296,   634,   991,
    1321,   114,   262,  1174,  1202,   278,   381,   448,  1247,  1248,
     968,    12,  1335,  1339,   509,  1364,  1011,    12,   125,   194,
     460,   461,   462,   463,   464,   465,   477,  1017,  1018,  1019,
    1303,    23,    34,    57,    58,    67,    69,    84,    86,    88,
      96,   143,   147,   150,   176,   178,   183,   185,   207,   208,
     212,   230,   251,   278,   310,   320,   339,   362,   373,   374,
     377,   378,   436,   448,   476,   493,   555,   869,   895,  1222,
    1225,  1226,  1228,  1310,   961,   962,   961,   961,   560,   960,
     961,  1162,  1289,  1296,  1321,  1202,    35,   193,   498,  1277,
    1294,  1418,  1418,  1418,  1418,  1418,  1012,  1009,   580,   585,
    1296,  1235,  1234,   294,   496,   522,   920,   536,    92,  1298,
    1299,   922,   728,   750,  1296,   921,   341,     6,    55,   129,
     325,   385,   387,   751,  1289,   635,   466,  1392,  1393,   923,
     980,  1161,  1162,   222,   581,  1003,  1004,   579,   643,  1296,
     607,  1161,  1161,    54,   327,   327,   399,  1365,   324,   325,
    1034,  1296,   727,   750,   171,     6,  1299,  1352,  1353,   407,
      10,   374,   513,   621,  1023,  1385,  1393,  1401,  1405,  1406,
    1412,   621,  1023,  1384,  1393,  1401,  1406,  1412,  1386,  1391,
     824,  1296,  1296,  1296,   175,  1205,  1209,  1210,  1296,  1212,
     579,   579,   579,  1038,   579,   579,   579,  1028,  1068,   579,
     579,   579,   579,   579,   579,   579,   579,   579,  1027,  1027,
     579,  1027,   579,   579,   579,   523,   579,  1276,   579,   579,
     579,   579,   579,   579,   579,   579,   579,   579,   579,  1028,
     579,   579,   579,  1066,  1067,  1285,  1296,   579,   579,   579,
     579,   579,   579,   579,   579,   579,  1028,   579,  1027,   579,
     579,   579,   579,   579,   579,   579,   579,   579,   579,   579,
     579,   579,   579,   579,   579,   579,  1027,   579,  1276,   579,
     579,   579,  1276,   579,   579,    35,   193,   498,   579,  1027,
    1027,  1027,   579,   579,   579,   579,   579,  1038,  1038,  1038,
     431,   579,  1028,  1380,  1296,  1056,  1296,    15,    16,   344,
     347,   566,  1032,  1033,   145,   146,   179,   188,   225,   236,
     263,   318,  1036,    31,   126,   222,   244,   305,   395,   442,
     443,   453,   570,   571,   572,   573,   574,   575,   576,   577,
    1034,  1038,    66,   346,   581,  1294,   579,   587,   154,  1296,
     635,  1296,   336,   750,   635,  1298,   760,  1226,   635,  1299,
    1351,  1161,  1165,   541,   601,   119,   196,   256,   278,   373,
     381,   411,   448,   472,   490,  1241,  1242,  1321,   373,  1340,
     421,   421,   495,   538,   553,   342,  1344,   490,  1346,    62,
     448,  1343,    96,   553,  1345,   336,   581,    18,   145,  1112,
    1113,  1328,  1296,   952,   452,    76,   175,   262,  1258,  1263,
      48,   175,  1289,  1322,  1323,   988,   246,   249,   383,   776,
     780,   586,   598,  1293,   256,   992,  1299,   993,   994,  1289,
     975,   219,  1162,  1175,  1176,    48,   581,  1161,  1340,   336,
     426,  1366,  1365,   529,  1371,  1372,   574,  1021,  1022,  1023,
    1019,  1305,  1306,  1307,   150,   439,   244,   558,  1232,   517,
     579,    95,   151,   178,   374,   493,   513,   553,  1232,    12,
     832,  1298,   245,  1131,  1133,   175,   222,  1227,  1229,    65,
     472,   172,   472,   472,   472,   278,   490,    65,   472,    12,
      41,    82,    87,   224,   293,   353,   454,   487,  1216,  1217,
    1218,   196,   472,   472,   517,  1131,  1232,  1229,   256,   142,
      68,   363,   376,   490,   512,   472,   549,   958,   398,   467,
     963,   964,   957,    79,   952,   581,   338,  1421,   486,  1422,
     229,   414,  1420,   580,  1372,  1374,  1375,  1376,   141,   592,
    1007,  1238,  1277,  1296,   112,   819,   820,   829,   830,   878,
      98,  1027,   586,   636,     6,   729,   636,   579,    97,   746,
     746,   746,     4,   919,   925,   430,   553,  1393,  1161,   509,
     581,   112,   998,  1296,   997,   208,   232,   893,  1005,   644,
     645,  1028,   264,   265,   266,   267,   268,   269,   271,   272,
     273,   274,   275,   276,   277,   279,   396,   397,   608,   609,
     610,   157,   382,   973,    56,   157,   161,   172,   292,   382,
     984,   985,   986,    54,   399,   154,   616,   729,    98,   746,
     202,   581,  1023,  1023,  1023,   151,   178,   178,  1393,  1289,
     899,   900,   899,   899,  1163,  1164,  1289,  1290,  1296,   581,
    1207,   587,  1211,  1028,  1028,    12,   125,  1061,  1114,  1061,
    1061,  1061,   557,  1070,  1028,  1028,  1065,  1065,  1028,  1028,
    1028,   125,  1061,  1114,   580,  1028,   580,  1028,  1028,  1028,
    1028,  1285,   579,  1380,   103,   104,   105,   106,   107,   197,
     198,   199,   200,   295,   297,   298,   299,   306,   380,   428,
     429,   556,   567,   568,  1108,  1110,  1065,    99,   102,   502,
     505,  1111,   125,  1058,  1028,  1028,  1028,  1028,  1108,  1028,
    1065,  1067,     9,   581,   587,   125,  1061,  1028,  1028,   125,
    1061,  1028,  1028,  1065,  1065,  1065,  1028,  1028,  1028,  1028,
    1065,  1031,  1028,  1028,  1028,  1028,  1028,  1028,  1061,  1061,
    1028,  1028,   125,  1061,  1028,  1028,   174,  1109,  1110,  1109,
    1028,    44,   237,   510,  1028,  1028,   580,  1286,  1287,  1296,
    1061,  1061,  1028,  1028,  1381,  1381,   580,   581,   580,  1028,
     586,  1057,  1298,   587,  1028,  1028,  1028,  1030,   160,   330,
     515,   531,  1034,    12,    17,  1030,  1037,  1031,  1031,   579,
    1038,  1031,  1031,  1031,  1031,   244,  1031,  1031,   218,  1031,
     218,  1031,  1031,  1031,  1031,  1031,    31,   222,   244,   395,
    1298,  1038,  1028,  1044,  1296,   587,  1289,   760,   328,   554,
     761,   762,   143,   581,    50,   413,   953,  1161,   586,   602,
     603,    48,   560,   581,  1243,   490,   579,  1354,  1354,  1354,
    1354,   178,   374,   493,  1338,  1342,  1296,   165,   321,  1296,
    1329,  1330,  1175,  1293,   278,   251,  1262,  1000,   278,  1113,
     581,  1161,   779,   778,   358,   786,   190,   232,  1298,    29,
     509,  1252,   581,   509,   581,   509,  1161,  1176,  1172,  1248,
     175,   581,   178,   374,  1338,  1296,    12,   125,  1378,   581,
    1014,  1025,  1028,  1283,  1296,   581,   183,   251,   337,   436,
    1308,  1309,  1312,  1313,   222,  1230,  1293,  1028,   574,   824,
     635,   635,   635,  1289,   635,  1289,   256,   310,   472,  1224,
    1224,   259,   331,   520,  1134,  1135,  1278,  1232,  1296,   635,
    1232,  1299,   172,  1227,   635,  1232,   223,   488,   162,   172,
    1219,   581,  1227,  1289,  1229,  1227,  1227,  1232,  1232,   534,
     965,   581,   965,   450,   431,   579,   583,  1071,  1072,  1073,
    1074,  1075,  1084,  1085,  1092,  1277,   361,  1423,   345,  1127,
    1133,  1377,   820,    66,   869,   121,  1298,    70,    81,   234,
     303,   327,   384,   466,   638,   640,   391,   524,   747,   748,
     210,   743,   744,   745,   752,   760,   762,    95,   195,   351,
     360,   366,   451,   538,   619,   620,  1293,    24,   284,   737,
     738,   739,   752,   753,   754,   760,   762,   730,   731,   737,
       6,    13,    14,    25,    26,    55,    59,    60,    64,    70,
      78,    85,    98,   115,   122,   123,   129,   137,   143,   170,
     206,   208,   216,   231,   283,   300,   304,   340,   345,   352,
     359,   360,   389,   401,   402,   403,   404,   423,   476,   491,
     494,   518,   529,   771,   826,   828,   829,   830,   930,   934,
     936,   939,   945,   946,   947,  1123,   336,   629,   926,   113,
     221,  1289,  1293,  1162,   579,   580,   581,   145,   145,   145,
     145,   145,   145,   145,   145,   145,   145,   145,   145,   145,
     145,   145,   145,   581,   536,   985,   818,   819,    70,   322,
     392,   525,   740,   741,   742,   752,   756,   757,   758,   759,
     760,   762,   562,   540,   725,    46,  1353,   178,   635,   635,
     824,   635,  1296,   612,   518,   541,   907,   336,   336,   336,
     581,  1208,  1206,   587,  1211,  1210,   175,   574,  1296,  1113,
     581,   580,  1061,   580,  1062,   580,   580,   580,  1028,   135,
     557,  1069,    18,   580,   541,   580,   580,   580,   581,   541,
     581,  1052,   580,   574,   580,   581,   581,   580,   580,   580,
     580,   175,   580,   581,  1054,   580,   581,   581,   581,   573,
     581,   580,   580,   579,  1285,  1296,  1061,   580,   580,   580,
    1061,   580,   581,   580,   580,   580,   580,   580,   580,   580,
     581,   580,   222,   580,   581,   581,   581,   581,   580,   580,
     580,   581,   175,   581,  1061,   580,   580,   580,   581,   581,
     581,   580,   175,  1028,   175,  1028,   175,  1028,   175,   580,
     581,   580,   580,   580,   580,   581,   580,  1010,  1009,  1065,
     584,   183,   251,   436,  1311,   440,  1296,   160,   330,   515,
     531,   579,    16,  1028,  1380,   149,  1119,  1031,  1028,  1028,
    1031,   579,  1038,  1031,  1023,  1048,  1049,  1050,   579,   587,
    1296,  1160,   761,   145,   440,  1186,  1187,  1299,   953,  1298,
     581,   386,  1242,  1161,  1244,  1296,  1355,  1356,   574,  1289,
    1296,  1350,  1350,  1350,   145,   165,   179,   188,   235,   236,
     263,   321,   371,  1331,  1333,   558,  1115,  1169,   209,  1001,
    1002,  1289,   262,   386,   563,  1324,  1323,   579,   784,   784,
     109,   167,   193,   259,   331,   520,  1138,  1141,  1142,   482,
     787,   777,   579,  1028,  1293,  1299,  1299,   994,  1289,   157,
     382,   539,   976,   977,   978,   431,   439,   545,   546,   579,
     814,  1177,  1180,  1293,   184,  1350,  1350,  1350,  1373,  1022,
     175,   219,  1015,  1016,  1126,  1127,  1152,  1024,   587,  1306,
     112,   511,  1296,  1315,   311,   360,   586,   869,  1314,  1293,
     175,  1231,   580,  1296,   334,   581,   448,  1232,   381,  1131,
    1218,  1232,  1227,  1289,  1232,  1232,   610,   966,   964,  1091,
    1296,    89,   211,   229,   240,   314,   418,   477,  1083,   439,
     581,  1289,  1091,   581,   172,  1424,    46,  1131,  1187,  1187,
     312,  1293,   466,   466,   466,   466,   466,   430,  1293,  1293,
    1187,   581,   745,  1293,  1293,  1293,  1293,   109,   167,   193,
     259,   331,   520,  1137,  1293,  1293,   580,   581,  1187,  1187,
     581,   739,   732,   733,   752,   753,   754,    69,    80,   359,
     840,   843,   844,   891,   893,   897,   898,   951,   951,   359,
    1187,  1187,   951,  1187,   359,   359,  1187,  1187,   509,   121,
    1187,   230,   491,   171,   359,   372,   893,   951,   230,  1187,
     491,   121,  1187,  1187,  1187,  1187,   951,   359,    46,  1187,
     772,  1187,   359,   357,    18,   145,   509,   955,   359,   359,
    1187,   124,   293,  1296,  1187,  1187,  1187,   826,   581,   770,
     771,   934,   579,   587,   839,   845,  1288,  1296,    74,   427,
     402,   927,  1394,   372,  1104,  1105,  1106,  1296,  1028,  1137,
    1293,  1293,   109,   167,   259,   331,   520,  1139,  1293,  1137,
    1293,  1293,  1293,  1293,  1293,  1137,  1137,  1293,  1293,  1137,
     609,  1187,  1187,  1187,  1187,   581,   742,  1298,   255,   158,
     734,   735,   736,   752,   753,   754,   755,   758,   759,   760,
     762,   360,   498,  1296,  1413,     8,    29,   720,   635,   579,
     415,   244,   579,   764,   825,   827,   828,    45,   190,   425,
     912,   912,  1289,  1289,  1289,  1164,  1296,   541,  1115,  1296,
    1072,   587,  1211,   218,  1028,   580,  1028,   501,  1028,  1028,
     139,    33,    58,    99,   102,   110,   316,   446,   505,   533,
    1063,    33,   870,  1298,  1028,   870,  1063,  1065,   580,   218,
     218,  1028,  1028,  1065,  1028,  1028,  1028,  1028,  1028,  1031,
     580,   580,  1028,  1028,  1028,  1028,  1028,  1028,  1065,   218,
    1028,  1028,  1028,   580,  1028,  1028,  1028,  1028,   175,  1028,
     175,  1028,   175,  1028,  1028,  1028,  1379,  1379,   580,   587,
     587,   587,  1298,  1028,  1380,  1030,   580,   581,   580,  1038,
    1108,  1108,    16,  1028,  1380,  1119,  1028,   580,   581,  1064,
    1065,  1296,   831,  1298,   603,   254,   580,   581,   587,   587,
     509,   509,   509,  1332,  1116,  1132,  1133,  1177,   498,  1295,
     581,  1003,   563,   251,  1023,    46,   579,   794,   784,   781,
     782,   783,  1296,   509,   977,   815,  1178,   579,  1183,  1188,
    1183,   580,   814,  1179,  1282,  1283,  1286,  1296,  1181,   342,
     175,   175,   175,  1008,   130,  1072,  1153,   172,   254,  1020,
    1152,  1132,  1016,    18,  1026,  1293,  1296,   574,  1296,   587,
     226,   587,  1186,   112,   870,   871,  1186,   172,  1186,   586,
    1298,    33,   112,   873,   874,  1298,  1139,  1223,   147,   555,
    1135,  1135,   560,   331,  1115,  1227,   581,  1086,  1091,  1071,
     229,   229,   348,  1093,   229,   240,   418,  1093,  1084,  1071,
    1198,  1199,  1286,  1073,  1113,  1088,  1089,  1137,   296,  1128,
     112,   875,   877,  1298,   871,    98,    98,   113,   221,   201,
     763,  1138,   745,   620,   763,   763,   739,   581,   733,   915,
    1288,   989,    60,   171,   372,   530,   842,   892,   841,   842,
     915,   893,   894,   894,  1288,   989,  1139,  1137,  1288,  1137,
      12,   935,   943,   944,  1296,   989,  1293,  1293,   869,  1187,
    1137,   232,   943,   232,  1288,  1288,   831,  1187,   165,   235,
     327,   834,  1137,  1139,  1139,  1288,   989,  1124,  1125,  1286,
     112,  1137,   775,  1293,   989,  1289,   989,   989,    73,    75,
     112,   133,   166,   393,   833,  1137,   831,   579,     6,   129,
     947,   837,   838,   839,   840,  1296,     8,   165,   954,   394,
     841,   883,   846,   587,   325,   370,    22,   152,   623,   509,
     122,   137,   625,   579,  1395,   580,   581,  1293,  1138,   763,
     763,   742,   341,   186,  1187,   581,   736,   498,   415,   579,
     116,   215,   535,   721,   622,  1407,   110,   220,   388,   478,
     836,  1289,   244,   359,   765,   770,   837,   770,   581,   827,
     613,   614,   615,   587,  1072,  1126,  1211,  1115,  1113,  1028,
     580,  1028,   501,   579,   862,   863,   863,   579,   857,   858,
     862,   863,   220,   220,   580,   580,   580,   580,   580,  1053,
    1028,  1028,   580,   580,  1060,  1127,   581,   581,   580,   581,
     580,   222,  1045,  1046,   580,   580,   580,   580,   581,   580,
     580,  1028,   580,   172,   580,   580,   581,   580,   581,   581,
     580,  1028,   580,  1028,   580,  1028,   580,   580,   580,  1382,
    1382,   587,   916,   580,  1065,  1030,   580,   581,   580,  1024,
    1050,   580,  1356,   574,   574,  1352,  1352,  1352,   579,  1028,
     336,  1193,  1259,  1002,   205,  1006,   792,  1031,   780,   359,
     795,   796,   580,   581,  1299,  1017,  1184,  1185,  1286,  1189,
     581,   579,  1180,   580,   580,   581,   587,  1371,   175,  1352,
    1352,  1352,  1115,  1115,   131,   349,  1148,  1149,  1154,   535,
     222,  1293,  1296,   587,  1296,   242,  1296,    12,    33,   112,
     336,  1028,  1318,    66,   876,  1028,  1299,   335,   360,   498,
    1317,  1311,  1186,  1131,   266,  1232,   610,  1374,  1087,   584,
     229,  1084,  1093,  1093,   229,   336,   336,   541,   581,  1197,
    1186,  1102,  1103,  1017,  1028,  1129,  1284,   733,   937,  1028,
     232,   232,   894,   915,   900,   915,   915,   129,   439,   935,
     948,   932,   581,  1138,   871,  1293,   915,   953,  1293,   949,
     935,   581,    19,   117,  1130,   935,   940,   935,  1244,   580,
     581,  1296,  1289,    32,    33,    38,    40,    42,    43,    58,
      99,   102,   110,   127,   144,   166,   168,   180,   181,   220,
     248,   257,   258,   260,   289,   290,   291,   307,   308,   309,
     313,   316,   332,   333,   364,   365,   388,   435,   439,   449,
     499,   502,   505,   506,   507,   508,   547,   548,   568,   847,
     850,   851,   852,   853,   854,   855,   856,  1296,   370,  1028,
    1028,   336,   629,   635,   336,    70,   630,  1296,  1396,    18,
    1105,   579,  1296,   763,   736,   836,  1414,   336,   336,   646,
     647,   649,  1296,   452,  1289,   814,   580,   205,   407,   767,
    1264,   827,   579,   579,   579,  1296,  1115,   245,  1136,  1108,
    1028,   109,   259,   331,   520,    20,    33,    47,   527,   869,
     879,   331,   580,  1108,  1108,   433,  1059,  1028,  1028,  1065,
      42,   314,   580,   560,  1047,  1028,  1108,  1028,  1028,  1028,
    1028,   580,   580,   580,   580,  1296,   580,  1065,  1026,   409,
    1357,  1357,  1357,   112,  1028,  1191,  1192,   132,  1264,   238,
    1024,   190,   232,   797,   580,   581,   783,  1021,   581,  1186,
    1190,  1191,  1188,  1182,  1180,  1282,  1296,  1352,  1132,   186,
    1120,  1295,  1295,   586,  1150,  1151,  1298,   441,   574,   386,
     405,   434,  1316,   877,  1186,   579,   579,  1315,  1028,   145,
     580,  1074,  1071,  1084,   229,   229,  1071,  1084,  1077,  1076,
    1078,  1199,  1115,  1192,  1100,  1101,  1021,   581,  1130,   358,
     579,   938,   915,   900,   579,   899,   899,   112,   112,   845,
     984,   944,   876,   847,   931,  1125,   941,   943,   933,   580,
     838,   884,   862,   862,   863,   857,   368,   848,   857,   857,
     879,    58,   547,   851,   853,   879,   879,    58,   548,   548,
     551,   857,   849,   863,   863,   879,   862,   863,    25,    66,
      70,   112,   330,   336,   372,   435,   530,   865,   866,   867,
     882,  1034,   551,   862,   879,    33,   862,   880,   862,   862,
     863,   579,   858,   864,   587,  1108,   448,  1293,   128,   928,
     580,   581,  1397,  1398,   619,   452,   213,   222,   350,   650,
     651,   652,   653,  1023,   427,   580,   581,   648,  1293,   580,
     580,   825,    18,   817,   913,   914,  1296,   913,   913,  1135,
     580,   580,   580,   580,   580,   880,    20,   527,   869,   881,
     880,   870,   581,   580,   580,  1277,   580,   580,   581,   580,
     302,   234,   381,   580,   580,   580,   580,   580,   580,   580,
      61,   227,   323,   468,   480,   564,  1348,  1349,   560,  1358,
    1358,  1358,   580,   581,  1194,   219,   580,   579,   785,   579,
     798,  1296,   796,   816,  1185,  1192,   580,  1374,    46,   191,
    1117,  1155,  1298,   581,   302,    71,   521,   386,  1317,   498,
     498,  1186,  1293,  1113,   336,  1080,  1084,  1084,   336,  1082,
    1028,  1028,   579,  1126,   170,   205,   540,  1095,  1096,  1099,
    1090,  1284,  1138,   795,   579,   579,   913,   579,   579,   102,
     502,   505,   572,   573,  1279,  1280,   954,   865,   989,   942,
     976,   280,   336,   579,   885,   887,   888,   889,   446,   533,
     569,   859,   860,   861,   579,   859,   859,   879,   551,   859,
     579,   879,   859,   875,  1293,   326,   868,  1279,   535,   112,
     232,   867,   232,   330,   879,   880,   879,   880,   859,   331,
     859,  1296,   624,   631,   632,  1296,   431,   579,  1399,   580,
    1293,   580,   581,   648,  1402,   623,  1408,   649,   847,   766,
     770,   579,   814,   580,   581,  1130,   579,   580,   580,   870,
     880,   331,  1028,   302,   156,   498,   498,   498,    16,  1347,
     184,   281,   282,   286,   287,  1359,  1360,  1192,   232,   493,
    1023,   788,   790,   791,  1296,   545,   799,   835,  1016,  1132,
    1121,  1284,  1118,  1126,   869,   872,  1151,   580,   580,  1318,
      16,  1079,   541,  1081,   541,  1107,  1296,  1136,   893,   893,
    1096,   835,  1130,   580,   913,   913,   580,   913,   913,  1281,
    1281,   950,   219,   176,   356,   447,   116,   535,   886,  1296,
     889,   861,   917,  1277,   917,  1027,   326,   546,   470,   626,
      52,    63,   163,   204,   228,   239,   339,   416,   633,   671,
     673,   674,   675,   677,   678,   679,   680,   681,   682,   684,
     692,   693,   696,   707,   710,   712,   713,  1292,  1297,  1301,
    1010,  1009,   560,  1400,  1415,   652,  1296,  1289,   628,   629,
     415,  1374,   767,   814,   768,   231,   901,   904,   907,   908,
     909,   914,   331,   560,   902,   906,   908,   911,   903,   905,
     908,   910,   580,   580,  1348,   342,  1137,  1137,  1137,  1137,
    1360,   535,  1289,   792,   481,   793,   580,   581,   222,   241,
      70,    98,   208,   283,   300,   322,   491,   811,   812,   813,
    1226,  1020,   560,   581,  1122,  1130,  1028,  1132,   871,  1156,
     267,  1028,   579,  1028,   579,   580,   581,   172,  1094,  1094,
     580,   580,   901,   580,   580,   954,   579,    50,   327,   413,
     439,   890,   890,   580,   581,   580,   581,   580,  1027,  1028,
     140,   627,   694,   697,  1296,   175,   321,   685,   672,  1297,
    1297,  1296,   676,   594,   261,   406,   559,   716,    30,   714,
     588,   580,    51,    60,   251,   637,   847,   172,   625,  1409,
     580,  1371,  1187,   909,  1130,   580,   355,   911,   910,  1200,
    1201,  1286,  1260,  1024,  1138,   789,   791,   579,   500,  1187,
     121,   121,  1187,  1187,  1187,  1187,   579,   806,   813,   143,
      90,   420,  1284,   374,  1143,    68,  1265,   145,  1107,  1107,
    1296,   186,   229,   345,  1098,  1097,   883,   901,   902,   903,
     795,     5,   112,   330,   887,  1296,   879,  1277,   879,  1028,
    1028,   557,   699,   703,   175,  1296,   687,   688,  1028,   655,
     670,   671,   673,   675,   677,   679,   680,   681,   682,   684,
     692,   707,   710,   712,   655,   717,   715,   708,   711,  1374,
      60,   342,    60,   120,   638,   639,  1034,  1416,  1023,   630,
     847,   769,  1137,  1292,   581,  1186,   872,   580,   793,   803,
     804,   805,  1031,   288,   579,   800,   801,   802,  1293,  1187,
    1187,   259,   331,   520,  1140,  1141,  1140,  1138,  1298,   482,
     807,   808,  1187,  1130,  1296,   138,   148,   343,   497,  1266,
    1267,   247,  1268,  1139,   580,   580,    46,    46,   579,   579,
     580,   695,   704,   135,   703,   706,   219,   139,  1028,   139,
     670,   585,   534,  1028,   656,   716,   714,   342,   342,   120,
     670,  1403,   128,  1410,  1374,  1201,  1192,  1261,   580,   581,
     288,   805,  1293,  1293,   809,   580,   581,   831,  1144,    46,
      46,   138,    46,  1267,   469,   497,  1269,  1270,    16,  1104,
    1106,   557,   698,   700,  1028,   655,   139,   683,   204,   501,
     261,   585,   719,   128,   111,   654,   657,   709,  1297,   709,
     134,   631,   637,  1265,   804,   580,   580,   810,  1298,   808,
     579,  1277,  1277,    46,  1277,    46,    46,  1270,   270,   580,
     580,   701,   700,   706,   705,    52,   686,  1296,   689,  1028,
     718,    83,   155,   662,   668,  1296,   139,   670,   585,   424,
    1411,  1268,   811,  1023,  1145,  1146,  1147,  1277,  1277,  1277,
     145,  1028,   139,   501,   581,   655,   139,   655,   189,   581,
     658,    77,    93,   585,  1404,   670,   205,  1271,  1028,   580,
     581,  1137,   702,    52,   655,  1296,   690,   406,   139,   172,
    1296,   847,   172,   172,   670,   331,   579,  1272,  1024,  1147,
     501,   135,   136,   691,   559,   659,   112,   669,   458,   665,
    1137,   660,   661,   247,   580,   586,  1273,  1274,  1286,   439,
    1275,   655,   655,   687,   457,   459,   663,   664,   665,   667,
    1034,  1296,  1028,   546,   666,  1007,  1298,   580,   581,  1200,
     581,   670,   173,  1294,  1274,   664
};

#define yyerrok		(yyerrstatus = 0)
#define yyclearin	(yychar = YYEMPTY)
#define YYEMPTY		(-2)
#define YYEOF		0

#define YYACCEPT	goto yyacceptlab
#define YYABORT		goto yyabortlab
#define YYERROR		goto yyerrorlab


/* Like YYERROR except do call yyerror.  This remains here temporarily
   to ease the transition to the new meaning of YYERROR, for GCC.
   Once GCC version 2 has supplanted version 1, this can go.  */

#define YYFAIL		goto yyerrlab

#define YYRECOVERING()  (!!yyerrstatus)

#define YYBACKUP(Token, Value)					\
do								\
  if (yychar == YYEMPTY && yylen == 1)				\
    {								\
      yychar = (Token);						\
      yylval = (Value);						\
      yytoken = YYTRANSLATE (yychar);				\
      YYPOPSTACK (1);						\
      goto yybackup;						\
    }								\
  else								\
    {								\
      yyerror (YY_("syntax error: cannot back up")); \
      YYERROR;							\
    }								\
while (YYID (0))


#define YYTERROR	1
#define YYERRCODE	256


/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
   If N is 0, then set CURRENT to the empty location which ends
   the previous symbol: RHS[0] (always defined).  */

#define YYRHSLOC(Rhs, K) ((Rhs)[K])
#ifndef YYLLOC_DEFAULT
# define YYLLOC_DEFAULT(Current, Rhs, N)				\
    do									\
      if (YYID (N))                                                    \
	{								\
	  (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;	\
	  (Current).first_column = YYRHSLOC (Rhs, 1).first_column;	\
	  (Current).last_line    = YYRHSLOC (Rhs, N).last_line;		\
	  (Current).last_column  = YYRHSLOC (Rhs, N).last_column;	\
	}								\
      else								\
	{								\
	  (Current).first_line   = (Current).last_line   =		\
	    YYRHSLOC (Rhs, 0).last_line;				\
	  (Current).first_column = (Current).last_column =		\
	    YYRHSLOC (Rhs, 0).last_column;				\
	}								\
    while (YYID (0))
#endif


/* YY_LOCATION_PRINT -- Print the location on the stream.
   This macro was not mandated originally: define only if we know
   we won't break user code: when these are the locations we know.  */

#ifndef YY_LOCATION_PRINT
# if YYLTYPE_IS_TRIVIAL
#  define YY_LOCATION_PRINT(File, Loc)			\
     fprintf (File, "%d.%d-%d.%d",			\
	      (Loc).first_line, (Loc).first_column,	\
	      (Loc).last_line,  (Loc).last_column)
# else
#  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
# endif
#endif


/* YYLEX -- calling `yylex' with the right arguments.  */

#ifdef YYLEX_PARAM
# define YYLEX yylex (&yylval, YYLEX_PARAM)
#else
# define YYLEX yylex (&yylval)
#endif

/* Enable debugging if requested.  */
#if YYDEBUG

# ifndef YYFPRINTF
#  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
#  define YYFPRINTF fprintf
# endif

# define YYDPRINTF(Args)			\
do {						\
  if (yydebug)					\
    YYFPRINTF Args;				\
} while (YYID (0))

# define YY_SYMBOL_PRINT(Title, Type, Value, Location)			  \
do {									  \
  if (yydebug)								  \
    {									  \
      YYFPRINTF (stderr, "%s ", Title);					  \
      yy_symbol_print (stderr,						  \
		  Type, Value); \
      YYFPRINTF (stderr, "\n");						  \
    }									  \
} while (YYID (0))


/*--------------------------------.
| Print this symbol on YYOUTPUT.  |
`--------------------------------*/

/*ARGSUSED*/
#if (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
static void
yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
#else
static void
yy_symbol_value_print (yyoutput, yytype, yyvaluep)
    FILE *yyoutput;
    int yytype;
    YYSTYPE const * const yyvaluep;
#endif
{
  if (!yyvaluep)
    return;
# ifdef YYPRINT
  if (yytype < YYNTOKENS)
    YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
# else
  YYUSE (yyoutput);
# endif
  switch (yytype)
    {
      default:
	break;
    }
}


/*--------------------------------.
| Print this symbol on YYOUTPUT.  |
`--------------------------------*/

#if (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
static void
yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
#else
static void
yy_symbol_print (yyoutput, yytype, yyvaluep)
    FILE *yyoutput;
    int yytype;
    YYSTYPE const * const yyvaluep;
#endif
{
  if (yytype < YYNTOKENS)
    YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
  else
    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);

  yy_symbol_value_print (yyoutput, yytype, yyvaluep);
  YYFPRINTF (yyoutput, ")");
}

/*------------------------------------------------------------------.
| yy_stack_print -- Print the state stack from its BOTTOM up to its |
| TOP (included).                                                   |
`------------------------------------------------------------------*/

#if (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
static void
yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
#else
static void
yy_stack_print (yybottom, yytop)
    yytype_int16 *yybottom;
    yytype_int16 *yytop;
#endif
{
  YYFPRINTF (stderr, "Stack now");
  for (; yybottom <= yytop; yybottom++)
    {
      int yybot = *yybottom;
      YYFPRINTF (stderr, " %d", yybot);
    }
  YYFPRINTF (stderr, "\n");
}

# define YY_STACK_PRINT(Bottom, Top)				\
do {								\
  if (yydebug)							\
    yy_stack_print ((Bottom), (Top));				\
} while (YYID (0))


/*------------------------------------------------.
| Report that the YYRULE is going to be reduced.  |
`------------------------------------------------*/

#if (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
static void
yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
#else
static void
yy_reduce_print (yyvsp, yyrule)
    YYSTYPE *yyvsp;
    int yyrule;
#endif
{
  int yynrhs = yyr2[yyrule];
  int yyi;
  unsigned long int yylno = yyrline[yyrule];
  YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
	     yyrule - 1, yylno);
  /* The symbols being reduced.  */
  for (yyi = 0; yyi < yynrhs; yyi++)
    {
      YYFPRINTF (stderr, "   $%d = ", yyi + 1);
      yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
		       &(yyvsp[(yyi + 1) - (yynrhs)])
		       		       );
      YYFPRINTF (stderr, "\n");
    }
}

# define YY_REDUCE_PRINT(Rule)		\
do {					\
  if (yydebug)				\
    yy_reduce_print (yyvsp, Rule); \
} while (YYID (0))

/* Nonzero means print parse trace.  It is left uninitialized so that
   multiple parsers can coexist.  */
int yydebug;
#else /* !YYDEBUG */
# define YYDPRINTF(Args)
# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
# define YY_STACK_PRINT(Bottom, Top)
# define YY_REDUCE_PRINT(Rule)
#endif /* !YYDEBUG */


/* YYINITDEPTH -- initial size of the parser's stacks.  */
#ifndef	YYINITDEPTH
# define YYINITDEPTH 200
#endif

/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
   if the built-in stack extension method is used).

   Do not make this value too large; the results are undefined if
   YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
   evaluated with infinite-precision integer arithmetic.  */

#ifndef YYMAXDEPTH
# define YYMAXDEPTH 10000
#endif



#if YYERROR_VERBOSE

# ifndef yystrlen
#  if defined __GLIBC__ && defined _STRING_H
#   define yystrlen strlen
#  else
/* Return the length of YYSTR.  */
#if (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
static YYSIZE_T
yystrlen (const char *yystr)
#else
static YYSIZE_T
yystrlen (yystr)
    const char *yystr;
#endif
{
  YYSIZE_T yylen;
  for (yylen = 0; yystr[yylen]; yylen++)
    continue;
  return yylen;
}
#  endif
# endif

# ifndef yystpcpy
#  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
#   define yystpcpy stpcpy
#  else
/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
   YYDEST.  */
#if (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
static char *
yystpcpy (char *yydest, const char *yysrc)
#else
static char *
yystpcpy (yydest, yysrc)
    char *yydest;
    const char *yysrc;
#endif
{
  char *yyd = yydest;
  const char *yys = yysrc;

  while ((*yyd++ = *yys++) != '\0')
    continue;

  return yyd - 1;
}
#  endif
# endif

# ifndef yytnamerr
/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
   quotes and backslashes, so that it's suitable for yyerror.  The
   heuristic is that double-quoting is unnecessary unless the string
   contains an apostrophe, a comma, or backslash (other than
   backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
   null, do not copy; instead, return the length of what the result
   would have been.  */
static YYSIZE_T
yytnamerr (char *yyres, const char *yystr)
{
  if (*yystr == '"')
    {
      YYSIZE_T yyn = 0;
      char const *yyp = yystr;

      for (;;)
	switch (*++yyp)
	  {
	  case '\'':
	  case ',':
	    goto do_not_strip_quotes;

	  case '\\':
	    if (*++yyp != '\\')
	      goto do_not_strip_quotes;
	    /* Fall through.  */
	  default:
	    if (yyres)
	      yyres[yyn] = *yyp;
	    yyn++;
	    break;

	  case '"':
	    if (yyres)
	      yyres[yyn] = '\0';
	    return yyn;
	  }
    do_not_strip_quotes: ;
    }

  if (! yyres)
    return yystrlen (yystr);

  return yystpcpy (yyres, yystr) - yyres;
}
# endif

/* Copy into YYRESULT an error message about the unexpected token
   YYCHAR while in state YYSTATE.  Return the number of bytes copied,
   including the terminating null byte.  If YYRESULT is null, do not
   copy anything; just return the number of bytes that would be
   copied.  As a special case, return 0 if an ordinary "syntax error"
   message will do.  Return YYSIZE_MAXIMUM if overflow occurs during
   size calculation.  */
static YYSIZE_T
yysyntax_error (char *yyresult, int yystate, int yychar)
{
  int yyn = yypact[yystate];

  if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
    return 0;
  else
    {
      int yytype = YYTRANSLATE (yychar);
      YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
      YYSIZE_T yysize = yysize0;
      YYSIZE_T yysize1;
      int yysize_overflow = 0;
      enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
      char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
      int yyx;

# if 0
      /* This is so xgettext sees the translatable formats that are
	 constructed on the fly.  */
      YY_("syntax error, unexpected %s");
      YY_("syntax error, unexpected %s, expecting %s");
      YY_("syntax error, unexpected %s, expecting %s or %s");
      YY_("syntax error, unexpected %s, expecting %s or %s or %s");
      YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
# endif
      char *yyfmt;
      char const *yyf;
      static char const yyunexpected[] = "syntax error, unexpected %s";
      static char const yyexpecting[] = ", expecting %s";
      static char const yyor[] = " or %s";
      char yyformat[sizeof yyunexpected
		    + sizeof yyexpecting - 1
		    + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
		       * (sizeof yyor - 1))];
      char const *yyprefix = yyexpecting;

      /* Start YYX at -YYN if negative to avoid negative indexes in
	 YYCHECK.  */
      int yyxbegin = yyn < 0 ? -yyn : 0;

      /* Stay within bounds of both yycheck and yytname.  */
      int yychecklim = YYLAST - yyn + 1;
      int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
      int yycount = 1;

      yyarg[0] = yytname[yytype];
      yyfmt = yystpcpy (yyformat, yyunexpected);

      for (yyx = yyxbegin; yyx < yyxend; ++yyx)
	if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
	  {
	    if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
	      {
		yycount = 1;
		yysize = yysize0;
		yyformat[sizeof yyunexpected - 1] = '\0';
		break;
	      }
	    yyarg[yycount++] = yytname[yyx];
	    yysize1 = yysize + yytnamerr (0, yytname[yyx]);
	    yysize_overflow |= (yysize1 < yysize);
	    yysize = yysize1;
	    yyfmt = yystpcpy (yyfmt, yyprefix);
	    yyprefix = yyor;
	  }

      yyf = YY_(yyformat);
      yysize1 = yysize + yystrlen (yyf);
      yysize_overflow |= (yysize1 < yysize);
      yysize = yysize1;

      if (yysize_overflow)
	return YYSIZE_MAXIMUM;

      if (yyresult)
	{
	  /* Avoid sprintf, as that infringes on the user's name space.
	     Don't have undefined behavior even if the translation
	     produced a string with the wrong number of "%s"s.  */
	  char *yyp = yyresult;
	  int yyi = 0;
	  while ((*yyp = *yyf) != '\0')
	    {
	      if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
		{
		  yyp += yytnamerr (yyp, yyarg[yyi++]);
		  yyf += 2;
		}
	      else
		{
		  yyp++;
		  yyf++;
		}
	    }
	}
      return yysize;
    }
}
#endif /* YYERROR_VERBOSE */


/*-----------------------------------------------.
| Release the memory associated to this symbol.  |
`-----------------------------------------------*/

/*ARGSUSED*/
#if (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
static void
yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
#else
static void
yydestruct (yymsg, yytype, yyvaluep)
    const char *yymsg;
    int yytype;
    YYSTYPE *yyvaluep;
#endif
{
  YYUSE (yyvaluep);

  if (!yymsg)
    yymsg = "Deleting";
  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);

  switch (yytype)
    {

      default:
	break;
    }
}

/* Prevent warnings from -Wmissing-prototypes.  */
#ifdef YYPARSE_PARAM
#if defined __STDC__ || defined __cplusplus
int yyparse (void *YYPARSE_PARAM);
#else
int yyparse ();
#endif
#else /* ! YYPARSE_PARAM */
#if defined __STDC__ || defined __cplusplus
int yyparse (void);
#else
int yyparse ();
#endif
#endif /* ! YYPARSE_PARAM */





/*-------------------------.
| yyparse or yypush_parse.  |
`-------------------------*/

#ifdef YYPARSE_PARAM
#if (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
int
yyparse (void *YYPARSE_PARAM)
#else
int
yyparse (YYPARSE_PARAM)
    void *YYPARSE_PARAM;
#endif
#else /* ! YYPARSE_PARAM */
#if (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
int
yyparse (void)
#else
int
yyparse ()

#endif
#endif
{
/* The lookahead symbol.  */
int yychar;

/* The semantic value of the lookahead symbol.  */
YYSTYPE yylval;

    /* Number of syntax errors so far.  */
    int yynerrs;

    int yystate;
    /* Number of tokens to shift before error messages enabled.  */
    int yyerrstatus;

    /* The stacks and their tools:
       `yyss': related to states.
       `yyvs': related to semantic values.

       Refer to the stacks thru separate pointers, to allow yyoverflow
       to reallocate them elsewhere.  */

    /* The state stack.  */
    yytype_int16 yyssa[YYINITDEPTH];
    yytype_int16 *yyss;
    yytype_int16 *yyssp;

    /* The semantic value stack.  */
    YYSTYPE yyvsa[YYINITDEPTH];
    YYSTYPE *yyvs;
    YYSTYPE *yyvsp;

    YYSIZE_T yystacksize;

  int yyn;
  int yyresult;
  /* Lookahead token as an internal (translated) token number.  */
  int yytoken;
  /* The variables used to return semantic value and location from the
     action routines.  */
  YYSTYPE yyval;

#if YYERROR_VERBOSE
  /* Buffer for error messages, and its allocated size.  */
  char yymsgbuf[128];
  char *yymsg = yymsgbuf;
  YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
#endif

#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))

  /* The number of symbols on the RHS of the reduced rule.
     Keep to zero when no symbol should be popped.  */
  int yylen = 0;

  yytoken = 0;
  yyss = yyssa;
  yyvs = yyvsa;
  yystacksize = YYINITDEPTH;

  YYDPRINTF ((stderr, "Starting parse\n"));

  yystate = 0;
  yyerrstatus = 0;
  yynerrs = 0;
  yychar = YYEMPTY; /* Cause a token to be read.  */

  /* Initialize stack pointers.
     Waste one element of value and location stack
     so that they stay on the same level as the state stack.
     The wasted elements are never initialized.  */
  yyssp = yyss;
  yyvsp = yyvs;

  goto yysetstate;

/*------------------------------------------------------------.
| yynewstate -- Push a new state, which is found in yystate.  |
`------------------------------------------------------------*/
 yynewstate:
  /* In all cases, when you get here, the value and location stacks
     have just been pushed.  So pushing a state here evens the stacks.  */
  yyssp++;

 yysetstate:
  *yyssp = yystate;

  if (yyss + yystacksize - 1 <= yyssp)
    {
      /* Get the current used size of the three stacks, in elements.  */
      YYSIZE_T yysize = yyssp - yyss + 1;

#ifdef yyoverflow
      {
	/* Give user a chance to reallocate the stack.  Use copies of
	   these so that the &'s don't force the real ones into
	   memory.  */
	YYSTYPE *yyvs1 = yyvs;
	yytype_int16 *yyss1 = yyss;

	/* Each stack pointer address is followed by the size of the
	   data in use in that stack, in bytes.  This used to be a
	   conditional around just the two extra args, but that might
	   be undefined if yyoverflow is a macro.  */
	yyoverflow (YY_("memory exhausted"),
		    &yyss1, yysize * sizeof (*yyssp),
		    &yyvs1, yysize * sizeof (*yyvsp),
		    &yystacksize);

	yyss = yyss1;
	yyvs = yyvs1;
      }
#else /* no yyoverflow */
# ifndef YYSTACK_RELOCATE
      goto yyexhaustedlab;
# else
      /* Extend the stack our own way.  */
      if (YYMAXDEPTH <= yystacksize)
	goto yyexhaustedlab;
      yystacksize *= 2;
      if (YYMAXDEPTH < yystacksize)
	yystacksize = YYMAXDEPTH;

      {
	yytype_int16 *yyss1 = yyss;
	union yyalloc *yyptr =
	  (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
	if (! yyptr)
	  goto yyexhaustedlab;
	YYSTACK_RELOCATE (yyss_alloc, yyss);
	YYSTACK_RELOCATE (yyvs_alloc, yyvs);
#  undef YYSTACK_RELOCATE
	if (yyss1 != yyssa)
	  YYSTACK_FREE (yyss1);
      }
# endif
#endif /* no yyoverflow */

      yyssp = yyss + yysize - 1;
      yyvsp = yyvs + yysize - 1;

      YYDPRINTF ((stderr, "Stack size increased to %lu\n",
		  (unsigned long int) yystacksize));

      if (yyss + yystacksize - 1 <= yyssp)
	YYABORT;
    }

  YYDPRINTF ((stderr, "Entering state %d\n", yystate));

  if (yystate == YYFINAL)
    YYACCEPT;

  goto yybackup;

/*-----------.
| yybackup.  |
`-----------*/
yybackup:

  /* Do appropriate processing given the current state.  Read a
     lookahead token if we need one and don't already have one.  */

  /* First try to decide what to do without reference to lookahead token.  */
  yyn = yypact[yystate];
  if (yyn == YYPACT_NINF)
    goto yydefault;

  /* Not known => get a lookahead token if don't already have one.  */

  /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
  if (yychar == YYEMPTY)
    {
      YYDPRINTF ((stderr, "Reading a token: "));
      yychar = YYLEX;
//add by jake
	//printf("yychar:[%d]\n", yychar);
	if(((YYLIP->yySignNext<0)
		||(YYLIP->yySignNext==yychar))
	&&(yychar!=0))
	{
		YYLIP->yySignNext = -100;
			
		if(yychar != TEXT_STRING && yychar != NUM)
		{
			if( (YYLIP->yyGetSignBuff()!=YYLIP->yyGetSignBuffPtr())
				|| (YYLIP->get_cpp_ptr()==YYLIP->get_cpp_tok_start()))
			{
				if(yychar==',')
					YYLIP->yySignPut(',');
				else
					YYLIP->yySignPut(' ');
			}
			for(int i=0; i<(YYLIP->get_cpp_ptr()-YYLIP->get_cpp_tok_start()); i++)
			{
				YYLIP->yySignPut(*(YYLIP->get_cpp_tok_start()+i));
				//printf("%c", *(YYLIP->get_cpp_tok_start()+i));
			}
			if(yychar == SELECT_SYM)
			{
				YYLIP->yySignPut(' ');
				YYLIP->yySignPut('?');
				YYLIP->yySignNext = FROM;
			}
		}
		else
		{
			if(YYLIP->yyGetSignLast() != '?')
			{
				YYLIP->yySignPut(' ');
				YYLIP->yySignPut('?');
			}
		}
    }
	//end
  	}
  if (yychar <= YYEOF)
    {
      yychar = yytoken = YYEOF;
      YYDPRINTF ((stderr, "Now at end of input.\n"));
    }
  else
    {
      yytoken = YYTRANSLATE (yychar);
      YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
    }

  /* If the proper action on seeing token YYTOKEN is to reduce or to
     detect an error, take that action.  */
  yyn += yytoken;
  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
    goto yydefault;
  yyn = yytable[yyn];
  if (yyn <= 0)
    {
      if (yyn == 0 || yyn == YYTABLE_NINF)
	goto yyerrlab;
      yyn = -yyn;
      goto yyreduce;
    }

  /* Count tokens shifted since error; after three, turn off error
     status.  */
  if (yyerrstatus)
    yyerrstatus--;

  /* Shift the lookahead token.  */
  YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);

  /* Discard the shifted token.  */
  yychar = YYEMPTY;

  yystate = yyn;
  *++yyvsp = yylval;

  goto yynewstate;


/*-----------------------------------------------------------.
| yydefault -- do the default action for the current state.  |
`-----------------------------------------------------------*/
yydefault:
  yyn = yydefact[yystate];
  if (yyn == 0)
    goto yyerrlab;
  goto yyreduce;


/*-----------------------------.
| yyreduce -- Do a reduction.  |
`-----------------------------*/
yyreduce:
  /* yyn is the number of a rule to reduce with.  */
  yylen = yyr2[yyn];

  /* If YYLEN is nonzero, implement the default value of the action:
     `$$ = $1'.

     Otherwise, the following line sets YYVAL to garbage.
     This behavior is undocumented and Bison
     users should not rely upon it.  Assigning to YYVAL
     unconditionally makes the parser a bit smaller, and it avoids a
     GCC warning that YYVAL may be used uninitialized.  */
  yyval = yyvsp[1-yylen];


  YY_REDUCE_PRINT (yyn);
  switch (yyn)
    {
        case 2:

/* Line 1455 of yacc.c  */
#line 1516 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            if (!thd->bootstrap &&
              (!(thd->lex->select_lex.options & OPTION_FOUND_COMMENT)))
            {
              my_message(ER_EMPTY_QUERY, ER(ER_EMPTY_QUERY), MYF(0));
              MYSQL_YYABORT;
            }
            thd->lex->sql_command= SQLCOM_EMPTY_QUERY;
            YYLIP->found_semicolon= NULL;
          }
    break;

  case 3:

/* Line 1455 of yacc.c  */
#line 1528 "sql_yacc.yy"
    {
            Lex_input_stream *lip = YYLIP;

            if ((YYTHD->client_capabilities & CLIENT_MULTI_QUERIES) &&
                ! lip->stmt_prepare_mode &&
                ! lip->eof())
            {
              /*
                We found a well formed query, and multi queries are allowed:
                - force the parser to stop after the ';'
                - mark the start of the next query for the next invocation
                  of the parser.
              */
              lip->next_state= MY_LEX_END;
              lip->found_semicolon= lip->get_ptr();
            }
            else
            {
              /* Single query, terminated. */
              lip->found_semicolon= NULL;
            }
          }
    break;

  case 5:

/* Line 1455 of yacc.c  */
#line 1553 "sql_yacc.yy"
    {
            /* Single query, not terminated. */
            YYLIP->found_semicolon= NULL;
          }
    break;

  case 61:

/* Line 1455 of yacc.c  */
#line 1626 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            lex->sql_command= SQLCOM_DEALLOCATE_PREPARE;
            lex->prepared_stmt_name= (yyvsp[(3) - (3)].lex_str);
          }
    break;

  case 64:

/* Line 1455 of yacc.c  */
#line 1641 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            lex->sql_command= SQLCOM_PREPARE;
            lex->prepared_stmt_name= (yyvsp[(2) - (4)].lex_str);
          }
    break;

  case 65:

/* Line 1455 of yacc.c  */
#line 1651 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            lex->prepared_stmt_code= (yyvsp[(1) - (1)].lex_str);
            lex->prepared_stmt_code_is_varref= FALSE;
          }
    break;

  case 66:

/* Line 1455 of yacc.c  */
#line 1658 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            lex->prepared_stmt_code= (yyvsp[(2) - (2)].lex_str);
            lex->prepared_stmt_code_is_varref= TRUE;
          }
    break;

  case 67:

/* Line 1455 of yacc.c  */
#line 1668 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            lex->sql_command= SQLCOM_EXECUTE;
            lex->prepared_stmt_name= (yyvsp[(2) - (2)].lex_str);
          }
    break;

  case 68:

/* Line 1455 of yacc.c  */
#line 1675 "sql_yacc.yy"
    {}
    break;

  case 73:

/* Line 1455 of yacc.c  */
#line 1690 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            LEX_STRING *lexstr= (LEX_STRING*)sql_memdup(&(yyvsp[(2) - (2)].lex_str), sizeof(LEX_STRING));
            if (!lexstr || lex->prepared_stmt_params.push_back(lexstr))
              MYSQL_YYABORT;
          }
    break;

  case 74:

/* Line 1455 of yacc.c  */
#line 1702 "sql_yacc.yy"
    {
            if (Lex->sphead)
            {
              my_error(ER_SP_BADSTATEMENT, MYF(0), "HELP");
              MYSQL_YYABORT;
            }
          }
    break;

  case 75:

/* Line 1455 of yacc.c  */
#line 1710 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_HELP;
            lex->help_arg= (yyvsp[(3) - (3)].lex_str).str;
          }
    break;

  case 76:

/* Line 1455 of yacc.c  */
#line 1721 "sql_yacc.yy"
    {
            LEX *lex = Lex;
            lex->sql_command = SQLCOM_CHANGE_MASTER;
            bzero((char*) &lex->mi, sizeof(lex->mi));
          }
    break;

  case 77:

/* Line 1455 of yacc.c  */
#line 1727 "sql_yacc.yy"
    {}
    break;

  case 80:

/* Line 1455 of yacc.c  */
#line 1737 "sql_yacc.yy"
    {
            Lex->mi.host = (yyvsp[(3) - (3)].lex_str).str;
          }
    break;

  case 81:

/* Line 1455 of yacc.c  */
#line 1741 "sql_yacc.yy"
    {
            Lex->mi.user = (yyvsp[(3) - (3)].lex_str).str;
          }
    break;

  case 82:

/* Line 1455 of yacc.c  */
#line 1745 "sql_yacc.yy"
    {
            Lex->mi.password = (yyvsp[(3) - (3)].lex_str).str;
          }
    break;

  case 83:

/* Line 1455 of yacc.c  */
#line 1749 "sql_yacc.yy"
    {
            Lex->mi.port = (yyvsp[(3) - (3)].ulong_num);
          }
    break;

  case 84:

/* Line 1455 of yacc.c  */
#line 1753 "sql_yacc.yy"
    {
            Lex->mi.connect_retry = (yyvsp[(3) - (3)].ulong_num);
          }
    break;

  case 85:

/* Line 1455 of yacc.c  */
#line 1757 "sql_yacc.yy"
    {
            Lex->mi.ssl= (yyvsp[(3) - (3)].ulong_num) ? 
              LEX_MASTER_INFO::SSL_ENABLE : LEX_MASTER_INFO::SSL_DISABLE;
          }
    break;

  case 86:

/* Line 1455 of yacc.c  */
#line 1762 "sql_yacc.yy"
    {
            Lex->mi.ssl_ca= (yyvsp[(3) - (3)].lex_str).str;
          }
    break;

  case 87:

/* Line 1455 of yacc.c  */
#line 1766 "sql_yacc.yy"
    {
            Lex->mi.ssl_capath= (yyvsp[(3) - (3)].lex_str).str;
          }
    break;

  case 88:

/* Line 1455 of yacc.c  */
#line 1770 "sql_yacc.yy"
    {
            Lex->mi.ssl_cert= (yyvsp[(3) - (3)].lex_str).str;
          }
    break;

  case 89:

/* Line 1455 of yacc.c  */
#line 1774 "sql_yacc.yy"
    {
            Lex->mi.ssl_cipher= (yyvsp[(3) - (3)].lex_str).str;
          }
    break;

  case 90:

/* Line 1455 of yacc.c  */
#line 1778 "sql_yacc.yy"
    {
            Lex->mi.ssl_key= (yyvsp[(3) - (3)].lex_str).str;
          }
    break;

  case 91:

/* Line 1455 of yacc.c  */
#line 1782 "sql_yacc.yy"
    {
            Lex->mi.ssl_verify_server_cert= (yyvsp[(3) - (3)].ulong_num) ?
              LEX_MASTER_INFO::SSL_ENABLE : LEX_MASTER_INFO::SSL_DISABLE;
          }
    break;

  case 93:

/* Line 1455 of yacc.c  */
#line 1791 "sql_yacc.yy"
    {
            Lex->mi.log_file_name = (yyvsp[(3) - (3)].lex_str).str;
          }
    break;

  case 94:

/* Line 1455 of yacc.c  */
#line 1795 "sql_yacc.yy"
    {
            Lex->mi.pos = (yyvsp[(3) - (3)].ulonglong_number);
            /* 
               If the user specified a value < BIN_LOG_HEADER_SIZE, adjust it
               instead of causing subsequent errors. 
               We need to do it in this file, because only there we know that 
               MASTER_LOG_POS has been explicitely specified. On the contrary
               in change_master() (sql_repl.cc) we cannot distinguish between 0
               (MASTER_LOG_POS explicitely specified as 0) and 0 (unspecified),
               whereas we want to distinguish (specified 0 means "read the binlog
               from 0" (4 in fact), unspecified means "don't change the position
               (keep the preceding value)").
            */
            Lex->mi.pos = MAX(BIN_LOG_HEADER_SIZE, Lex->mi.pos);
          }
    break;

  case 95:

/* Line 1455 of yacc.c  */
#line 1811 "sql_yacc.yy"
    {
            Lex->mi.relay_log_name = (yyvsp[(3) - (3)].lex_str).str;
          }
    break;

  case 96:

/* Line 1455 of yacc.c  */
#line 1815 "sql_yacc.yy"
    {
            Lex->mi.relay_log_pos = (yyvsp[(3) - (3)].ulong_num);
            /* Adjust if < BIN_LOG_HEADER_SIZE (same comment as Lex->mi.pos) */
            Lex->mi.relay_log_pos = MAX(BIN_LOG_HEADER_SIZE, Lex->mi.relay_log_pos);
          }
    break;

  case 97:

/* Line 1455 of yacc.c  */
#line 1826 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            lex->sql_command= SQLCOM_CREATE_TABLE;
            if (!lex->select_lex.add_table_to_list(thd, (yyvsp[(5) - (5)].table), NULL,
                                                   TL_OPTION_UPDATING,
                                                   TL_WRITE))
              MYSQL_YYABORT;
            lex->alter_info.reset();
            lex->col_list.empty();
            lex->change=NullS;
            bzero((char*) &lex->create_info,sizeof(lex->create_info));
            lex->create_info.options=(yyvsp[(2) - (5)].num) | (yyvsp[(4) - (5)].num);
            lex->create_info.db_type= ha_default_handlerton(thd);
            lex->create_info.default_table_charset= NULL;
            lex->name.str= 0;
            lex->name.length= 0;
          }
    break;

  case 98:

/* Line 1455 of yacc.c  */
#line 1845 "sql_yacc.yy"
    {
            LEX *lex= YYTHD->lex;
            lex->current_select= &lex->select_lex; 
            if (!lex->create_info.db_type)
            {
              lex->create_info.db_type= ha_default_handlerton(YYTHD);
              push_warning_printf(YYTHD, MYSQL_ERROR::WARN_LEVEL_WARN,
                                  ER_WARN_USING_OTHER_HANDLER,
                                  ER(ER_WARN_USING_OTHER_HANDLER),
                                  ha_resolve_storage_engine_name(lex->create_info.db_type),
                                  (yyvsp[(5) - (7)].table)->table.str);
            }
          }
    break;

  case 99:

/* Line 1455 of yacc.c  */
#line 1859 "sql_yacc.yy"
    {
            if (add_create_index_prepare(Lex, (yyvsp[(7) - (7)].table)))
              MYSQL_YYABORT;
          }
    break;

  case 100:

/* Line 1455 of yacc.c  */
#line 1864 "sql_yacc.yy"
    {
            if (add_create_index(Lex, (yyvsp[(2) - (12)].key_type), (yyvsp[(4) - (12)].lex_str).str))
              MYSQL_YYABORT;
          }
    break;

  case 101:

/* Line 1455 of yacc.c  */
#line 1870 "sql_yacc.yy"
    {
            if (add_create_index_prepare(Lex, (yyvsp[(7) - (7)].table)))
              MYSQL_YYABORT;
          }
    break;

  case 102:

/* Line 1455 of yacc.c  */
#line 1875 "sql_yacc.yy"
    {
            if (add_create_index(Lex, (yyvsp[(2) - (12)].key_type), (yyvsp[(4) - (12)].lex_str).str))
              MYSQL_YYABORT;
          }
    break;

  case 103:

/* Line 1455 of yacc.c  */
#line 1881 "sql_yacc.yy"
    {
            if (add_create_index_prepare(Lex, (yyvsp[(7) - (7)].table)))
              MYSQL_YYABORT;
          }
    break;

  case 104:

/* Line 1455 of yacc.c  */
#line 1886 "sql_yacc.yy"
    {
            if (add_create_index(Lex, (yyvsp[(2) - (12)].key_type), (yyvsp[(4) - (12)].lex_str).str))
              MYSQL_YYABORT;
          }
    break;

  case 105:

/* Line 1455 of yacc.c  */
#line 1891 "sql_yacc.yy"
    {
            Lex->create_info.default_table_charset= NULL;
            Lex->create_info.used_fields= 0;
          }
    break;

  case 106:

/* Line 1455 of yacc.c  */
#line 1896 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command=SQLCOM_CREATE_DB;
            lex->name= (yyvsp[(4) - (6)].lex_str);
            lex->create_info.options=(yyvsp[(3) - (6)].num);
          }
    break;

  case 107:

/* Line 1455 of yacc.c  */
#line 1903 "sql_yacc.yy"
    {
            Lex->create_view_mode= VIEW_CREATE_NEW;
            Lex->create_view_algorithm= VIEW_ALGORITHM_UNDEFINED;
            Lex->create_view_suid= TRUE;
          }
    break;

  case 108:

/* Line 1455 of yacc.c  */
#line 1909 "sql_yacc.yy"
    {}
    break;

  case 109:

/* Line 1455 of yacc.c  */
#line 1911 "sql_yacc.yy"
    {
            Lex->sql_command = SQLCOM_CREATE_USER;
          }
    break;

  case 110:

/* Line 1455 of yacc.c  */
#line 1915 "sql_yacc.yy"
    {
            Lex->alter_tablespace_info->ts_cmd_type= CREATE_LOGFILE_GROUP;
          }
    break;

  case 111:

/* Line 1455 of yacc.c  */
#line 1919 "sql_yacc.yy"
    {
            Lex->alter_tablespace_info->ts_cmd_type= CREATE_TABLESPACE;
          }
    break;

  case 112:

/* Line 1455 of yacc.c  */
#line 1923 "sql_yacc.yy"
    {
            Lex->sql_command= SQLCOM_CREATE_SERVER;
          }
    break;

  case 113:

/* Line 1455 of yacc.c  */
#line 1934 "sql_yacc.yy"
    {
            Lex->server_options.server_name= (yyvsp[(2) - (10)].lex_str).str;
            Lex->server_options.server_name_length= (yyvsp[(2) - (10)].lex_str).length;
            Lex->server_options.scheme= (yyvsp[(6) - (10)].lex_str).str;
          }
    break;

  case 116:

/* Line 1455 of yacc.c  */
#line 1948 "sql_yacc.yy"
    {
            Lex->server_options.username= (yyvsp[(2) - (2)].lex_str).str;
          }
    break;

  case 117:

/* Line 1455 of yacc.c  */
#line 1952 "sql_yacc.yy"
    {
            Lex->server_options.host= (yyvsp[(2) - (2)].lex_str).str;
          }
    break;

  case 118:

/* Line 1455 of yacc.c  */
#line 1956 "sql_yacc.yy"
    {
            Lex->server_options.db= (yyvsp[(2) - (2)].lex_str).str;
          }
    break;

  case 119:

/* Line 1455 of yacc.c  */
#line 1960 "sql_yacc.yy"
    {
            Lex->server_options.owner= (yyvsp[(2) - (2)].lex_str).str;
          }
    break;

  case 120:

/* Line 1455 of yacc.c  */
#line 1964 "sql_yacc.yy"
    {
            Lex->server_options.password= (yyvsp[(2) - (2)].lex_str).str;
          }
    break;

  case 121:

/* Line 1455 of yacc.c  */
#line 1968 "sql_yacc.yy"
    {
            Lex->server_options.socket= (yyvsp[(2) - (2)].lex_str).str;
          }
    break;

  case 122:

/* Line 1455 of yacc.c  */
#line 1972 "sql_yacc.yy"
    {
            Lex->server_options.port= (yyvsp[(2) - (2)].ulong_num);
          }
    break;

  case 123:

/* Line 1455 of yacc.c  */
#line 1979 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex=Lex;

            lex->stmt_definition_begin= (yyvsp[(1) - (4)].simple_string);
            lex->create_info.options= (yyvsp[(3) - (4)].num);
            if (!(lex->event_parse_data= Event_parse_data::new_instance(thd)))
              MYSQL_YYABORT;
            lex->event_parse_data->identifier= (yyvsp[(4) - (4)].spname);
            lex->event_parse_data->on_completion=
                                  Event_parse_data::ON_COMPLETION_DROP;

            lex->sql_command= SQLCOM_CREATE_EVENT;
            /* We need that for disallowing subqueries */
          }
    break;

  case 124:

/* Line 1455 of yacc.c  */
#line 1999 "sql_yacc.yy"
    {
            /*
              sql_command is set here because some rules in ev_sql_stmt
              can overwrite it
            */
            Lex->sql_command= SQLCOM_CREATE_EVENT;
          }
    break;

  case 125:

/* Line 1455 of yacc.c  */
#line 2010 "sql_yacc.yy"
    {
            Lex->event_parse_data->item_expression= (yyvsp[(2) - (3)].item);
            Lex->event_parse_data->interval= (yyvsp[(3) - (3)].interval);
          }
    break;

  case 127:

/* Line 1455 of yacc.c  */
#line 2017 "sql_yacc.yy"
    {
            Lex->event_parse_data->item_execute_at= (yyvsp[(2) - (2)].item);
          }
    break;

  case 128:

/* Line 1455 of yacc.c  */
#line 2023 "sql_yacc.yy"
    { (yyval.num)= 0; }
    break;

  case 129:

/* Line 1455 of yacc.c  */
#line 2025 "sql_yacc.yy"
    {
            Lex->event_parse_data->status= Event_parse_data::ENABLED;
            (yyval.num)= 1;
          }
    break;

  case 130:

/* Line 1455 of yacc.c  */
#line 2030 "sql_yacc.yy"
    {
            Lex->event_parse_data->status= Event_parse_data::SLAVESIDE_DISABLED;
            (yyval.num)= 1;
          }
    break;

  case 131:

/* Line 1455 of yacc.c  */
#line 2035 "sql_yacc.yy"
    {
            Lex->event_parse_data->status= Event_parse_data::DISABLED;
            (yyval.num)= 1;
          }
    break;

  case 132:

/* Line 1455 of yacc.c  */
#line 2043 "sql_yacc.yy"
    {
            Item *item= new (YYTHD->mem_root) Item_func_now_local();
            if (item == NULL)
              MYSQL_YYABORT;
            Lex->event_parse_data->item_starts= item;
          }
    break;

  case 133:

/* Line 1455 of yacc.c  */
#line 2050 "sql_yacc.yy"
    {
            Lex->event_parse_data->item_starts= (yyvsp[(2) - (2)].item);
          }
    break;

  case 135:

/* Line 1455 of yacc.c  */
#line 2058 "sql_yacc.yy"
    {
            Lex->event_parse_data->item_ends= (yyvsp[(2) - (2)].item);
          }
    break;

  case 136:

/* Line 1455 of yacc.c  */
#line 2064 "sql_yacc.yy"
    { (yyval.num)= 0; }
    break;

  case 138:

/* Line 1455 of yacc.c  */
#line 2070 "sql_yacc.yy"
    {
            Lex->event_parse_data->on_completion=
                                  Event_parse_data::ON_COMPLETION_PRESERVE;
            (yyval.num)= 1;
          }
    break;

  case 139:

/* Line 1455 of yacc.c  */
#line 2076 "sql_yacc.yy"
    {
            Lex->event_parse_data->on_completion=
                                  Event_parse_data::ON_COMPLETION_DROP;
            (yyval.num)= 1;
          }
    break;

  case 140:

/* Line 1455 of yacc.c  */
#line 2084 "sql_yacc.yy"
    { (yyval.num)= 0; }
    break;

  case 141:

/* Line 1455 of yacc.c  */
#line 2086 "sql_yacc.yy"
    {
            Lex->comment= Lex->event_parse_data->comment= (yyvsp[(2) - (2)].lex_str);
            (yyval.num)= 1;
          }
    break;

  case 142:

/* Line 1455 of yacc.c  */
#line 2093 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            Lex_input_stream *lip= YYLIP;

            /*
              This stops the following :
              - CREATE EVENT ... DO CREATE EVENT ...;
              - ALTER  EVENT ... DO CREATE EVENT ...;
              - CREATE EVENT ... DO ALTER EVENT DO ....;
              - CREATE PROCEDURE ... BEGIN CREATE EVENT ... END|
              This allows:
              - CREATE EVENT ... DO DROP EVENT yyy;
              - CREATE EVENT ... DO ALTER EVENT yyy;
                (the nested ALTER EVENT can have anything but DO clause)
              - ALTER  EVENT ... DO ALTER EVENT yyy;
                (the nested ALTER EVENT can have anything but DO clause)
              - ALTER  EVENT ... DO DROP EVENT yyy;
              - CREATE PROCEDURE ... BEGIN ALTER EVENT ... END|
                (the nested ALTER EVENT can have anything but DO clause)
              - CREATE PROCEDURE ... BEGIN DROP EVENT ... END|
            */
            if (lex->sphead)
            {
              my_error(ER_EVENT_RECURSION_FORBIDDEN, MYF(0));
              MYSQL_YYABORT;
            }
              
            if (!(lex->sphead= new sp_head()))
              MYSQL_YYABORT;

            lex->sphead->reset_thd_mem_root(thd);
            lex->sphead->init(lex);
            lex->sphead->init_sp_name(thd, lex->event_parse_data->identifier);

            lex->sphead->m_type= TYPE_ENUM_PROCEDURE;

            bzero((char *)&lex->sp_chistics, sizeof(st_sp_chistics));
            lex->sphead->m_chistics= &lex->sp_chistics;

            lex->sphead->set_body_start(thd, lip->get_cpp_ptr());
          }
    break;

  case 143:

/* Line 1455 of yacc.c  */
#line 2136 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;

            /* return back to the original memory root ASAP */
            lex->sphead->set_stmt_end(thd);
            lex->sphead->restore_thd_mem_root(thd);

            lex->sp_chistics.suid= SP_IS_SUID;  //always the definer!

            lex->event_parse_data->body_changed= TRUE;
          }
    break;

  case 157:

/* Line 1455 of yacc.c  */
#line 2168 "sql_yacc.yy"
    {
           LEX *lex=Lex;
           lex->users_list.empty();
           lex->columns.empty();
           lex->grant= lex->grant_tot_col= 0;
           lex->all_privileges= 0;
           lex->select_lex.db= 0;
           lex->ssl_type= SSL_TYPE_NOT_SPECIFIED;
           lex->ssl_cipher= lex->x509_subject= lex->x509_issuer= 0;
           bzero((char *)&(lex->mqh),sizeof(lex->mqh));
         }
    break;

  case 158:

/* Line 1455 of yacc.c  */
#line 2183 "sql_yacc.yy"
    {
            if (!(yyvsp[(1) - (3)].lex_str).str || check_db_name(&(yyvsp[(1) - (3)].lex_str)))
            {
              my_error(ER_WRONG_DB_NAME, MYF(0), (yyvsp[(1) - (3)].lex_str).str);
              MYSQL_YYABORT;
            }
            if (check_routine_name(&(yyvsp[(3) - (3)].lex_str)))
            {
              MYSQL_YYABORT;
            }
            (yyval.spname)= new sp_name((yyvsp[(1) - (3)].lex_str), (yyvsp[(3) - (3)].lex_str), true);
            if ((yyval.spname) == NULL)
              MYSQL_YYABORT;
            (yyval.spname)->init_qname(YYTHD);
          }
    break;

  case 159:

/* Line 1455 of yacc.c  */
#line 2199 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            LEX_STRING db;
            if (check_routine_name(&(yyvsp[(1) - (1)].lex_str)))
            {
              MYSQL_YYABORT;
            }
            if (lex->copy_db_to(&db.str, &db.length))
              MYSQL_YYABORT;
            (yyval.spname)= new sp_name(db, (yyvsp[(1) - (1)].lex_str), false);
            if ((yyval.spname) == NULL)
              MYSQL_YYABORT;
            (yyval.spname)->init_qname(thd);
          }
    break;

  case 160:

/* Line 1455 of yacc.c  */
#line 2217 "sql_yacc.yy"
    {}
    break;

  case 161:

/* Line 1455 of yacc.c  */
#line 2218 "sql_yacc.yy"
    {}
    break;

  case 162:

/* Line 1455 of yacc.c  */
#line 2222 "sql_yacc.yy"
    {}
    break;

  case 163:

/* Line 1455 of yacc.c  */
#line 2223 "sql_yacc.yy"
    {}
    break;

  case 164:

/* Line 1455 of yacc.c  */
#line 2229 "sql_yacc.yy"
    { Lex->sp_chistics.comment= (yyvsp[(2) - (2)].lex_str); }
    break;

  case 165:

/* Line 1455 of yacc.c  */
#line 2231 "sql_yacc.yy"
    { /* Just parse it, we only have one language for now. */ }
    break;

  case 166:

/* Line 1455 of yacc.c  */
#line 2233 "sql_yacc.yy"
    { Lex->sp_chistics.daccess= SP_NO_SQL; }
    break;

  case 167:

/* Line 1455 of yacc.c  */
#line 2235 "sql_yacc.yy"
    { Lex->sp_chistics.daccess= SP_CONTAINS_SQL; }
    break;

  case 168:

/* Line 1455 of yacc.c  */
#line 2237 "sql_yacc.yy"
    { Lex->sp_chistics.daccess= SP_READS_SQL_DATA; }
    break;

  case 169:

/* Line 1455 of yacc.c  */
#line 2239 "sql_yacc.yy"
    { Lex->sp_chistics.daccess= SP_MODIFIES_SQL_DATA; }
    break;

  case 170:

/* Line 1455 of yacc.c  */
#line 2241 "sql_yacc.yy"
    {}
    break;

  case 171:

/* Line 1455 of yacc.c  */
#line 2246 "sql_yacc.yy"
    { }
    break;

  case 172:

/* Line 1455 of yacc.c  */
#line 2247 "sql_yacc.yy"
    { Lex->sp_chistics.detistic= TRUE; }
    break;

  case 173:

/* Line 1455 of yacc.c  */
#line 2248 "sql_yacc.yy"
    { Lex->sp_chistics.detistic= FALSE; }
    break;

  case 174:

/* Line 1455 of yacc.c  */
#line 2253 "sql_yacc.yy"
    {
            Lex->sp_chistics.suid= SP_IS_SUID;
          }
    break;

  case 175:

/* Line 1455 of yacc.c  */
#line 2257 "sql_yacc.yy"
    {
            Lex->sp_chistics.suid= SP_IS_NOT_SUID;
          }
    break;

  case 176:

/* Line 1455 of yacc.c  */
#line 2264 "sql_yacc.yy"
    {
            LEX *lex = Lex;

            lex->sql_command= SQLCOM_CALL;
            lex->spname= (yyvsp[(2) - (2)].spname);
            lex->value_list.empty();
            sp_add_used_routine(lex, YYTHD, (yyvsp[(2) - (2)].spname), TYPE_ENUM_PROCEDURE);
          }
    break;

  case 177:

/* Line 1455 of yacc.c  */
#line 2272 "sql_yacc.yy"
    {}
    break;

  case 182:

/* Line 1455 of yacc.c  */
#line 2288 "sql_yacc.yy"
    {
           Lex->value_list.push_back((yyvsp[(3) - (3)].item));
          }
    break;

  case 183:

/* Line 1455 of yacc.c  */
#line 2292 "sql_yacc.yy"
    {
            Lex->value_list.push_back((yyvsp[(1) - (1)].item));
          }
    break;

  case 188:

/* Line 1455 of yacc.c  */
#line 2310 "sql_yacc.yy"
    {
            LEX *lex= Lex;

            lex->length= 0;
            lex->dec= 0;
            lex->type= 0;

            lex->default_value= 0;
            lex->on_update_value= 0;

            lex->comment= null_lex_str;
            lex->charset= NULL;

            lex->interval_list.empty();
            lex->uint_geom_type= 0;
          }
    break;

  case 189:

/* Line 1455 of yacc.c  */
#line 2330 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_pcontext *spc= lex->spcont;

            if (spc->find_variable(&(yyvsp[(1) - (3)].lex_str), TRUE))
            {
              my_error(ER_SP_DUP_PARAM, MYF(0), (yyvsp[(1) - (3)].lex_str).str);
              MYSQL_YYABORT;
            }
            sp_variable_t *spvar= spc->push_variable(&(yyvsp[(1) - (3)].lex_str),
                                                     (enum enum_field_types)(yyvsp[(3) - (3)].num),
                                                     sp_param_in);

            if (lex->sphead->fill_field_definition(YYTHD, lex,
                                                   (enum enum_field_types) (yyvsp[(3) - (3)].num),
                                                   &spvar->field_def))
            {
              MYSQL_YYABORT;
            }
            spvar->field_def.field_name= spvar->name.str;
            spvar->field_def.pack_flag |= FIELDFLAG_MAYBE_NULL;
          }
    break;

  case 194:

/* Line 1455 of yacc.c  */
#line 2367 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_pcontext *spc= lex->spcont;

            if (spc->find_variable(&(yyvsp[(3) - (4)].lex_str), TRUE))
            {
              my_error(ER_SP_DUP_PARAM, MYF(0), (yyvsp[(3) - (4)].lex_str).str);
              MYSQL_YYABORT;
            }
            sp_variable_t *spvar= spc->push_variable(&(yyvsp[(3) - (4)].lex_str),
                                                     (enum enum_field_types)(yyvsp[(4) - (4)].num),
                                                     (sp_param_mode_t)(yyvsp[(1) - (4)].num));

            if (lex->sphead->fill_field_definition(YYTHD, lex,
                                                   (enum enum_field_types) (yyvsp[(4) - (4)].num),
                                                   &spvar->field_def))
            {
              MYSQL_YYABORT;
            }
            spvar->field_def.field_name= spvar->name.str;
            spvar->field_def.pack_flag |= FIELDFLAG_MAYBE_NULL;
          }
    break;

  case 195:

/* Line 1455 of yacc.c  */
#line 2392 "sql_yacc.yy"
    { (yyval.num)= sp_param_in; }
    break;

  case 196:

/* Line 1455 of yacc.c  */
#line 2393 "sql_yacc.yy"
    { (yyval.num)= sp_param_in; }
    break;

  case 197:

/* Line 1455 of yacc.c  */
#line 2394 "sql_yacc.yy"
    { (yyval.num)= sp_param_out; }
    break;

  case 198:

/* Line 1455 of yacc.c  */
#line 2395 "sql_yacc.yy"
    { (yyval.num)= sp_param_inout; }
    break;

  case 199:

/* Line 1455 of yacc.c  */
#line 2399 "sql_yacc.yy"
    {}
    break;

  case 201:

/* Line 1455 of yacc.c  */
#line 2404 "sql_yacc.yy"
    {}
    break;

  case 203:

/* Line 1455 of yacc.c  */
#line 2410 "sql_yacc.yy"
    {
            (yyval.spblock).vars= (yyval.spblock).conds= (yyval.spblock).hndlrs= (yyval.spblock).curs= 0;
          }
    break;

  case 204:

/* Line 1455 of yacc.c  */
#line 2414 "sql_yacc.yy"
    {
            /* We check for declarations out of (standard) order this way
              because letting the grammar rules reflect it caused tricky
               shift/reduce conflicts with the wrong result. (And we get
               better error handling this way.) */
            if (((yyvsp[(2) - (3)].spblock).vars || (yyvsp[(2) - (3)].spblock).conds) && ((yyvsp[(1) - (3)].spblock).curs || (yyvsp[(1) - (3)].spblock).hndlrs))
            { /* Variable or condition following cursor or handler */
              my_message(ER_SP_VARCOND_AFTER_CURSHNDLR,
                         ER(ER_SP_VARCOND_AFTER_CURSHNDLR), MYF(0));
              MYSQL_YYABORT;
            }
            if ((yyvsp[(2) - (3)].spblock).curs && (yyvsp[(1) - (3)].spblock).hndlrs)
            { /* Cursor following handler */
              my_message(ER_SP_CURSOR_AFTER_HANDLER,
                         ER(ER_SP_CURSOR_AFTER_HANDLER), MYF(0));
              MYSQL_YYABORT;
            }
            (yyval.spblock).vars= (yyvsp[(1) - (3)].spblock).vars + (yyvsp[(2) - (3)].spblock).vars;
            (yyval.spblock).conds= (yyvsp[(1) - (3)].spblock).conds + (yyvsp[(2) - (3)].spblock).conds;
            (yyval.spblock).hndlrs= (yyvsp[(1) - (3)].spblock).hndlrs + (yyvsp[(2) - (3)].spblock).hndlrs;
            (yyval.spblock).curs= (yyvsp[(1) - (3)].spblock).curs + (yyvsp[(2) - (3)].spblock).curs;
          }
    break;

  case 205:

/* Line 1455 of yacc.c  */
#line 2440 "sql_yacc.yy"
    {
            LEX *lex= Lex;

            lex->sphead->reset_lex(YYTHD);
            lex->spcont->declare_var_boundary((yyvsp[(2) - (2)].num));
          }
    break;

  case 206:

/* Line 1455 of yacc.c  */
#line 2448 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= Lex;
            sp_pcontext *pctx= lex->spcont;
            uint num_vars= pctx->context_var_count();
            enum enum_field_types var_type= (enum enum_field_types) (yyvsp[(4) - (5)].num);
            Item *dflt_value_item= (yyvsp[(5) - (5)].item);
            
            if (!dflt_value_item)
            {
              dflt_value_item= new (thd->mem_root) Item_null();
              if (dflt_value_item == NULL)
                MYSQL_YYABORT;
              /* QQ Set to the var_type with null_value? */
            }
            
            for (uint i = num_vars-(yyvsp[(2) - (5)].num) ; i < num_vars ; i++)
            {
              uint var_idx= pctx->var_context2runtime(i);
              sp_variable_t *spvar= pctx->find_variable(var_idx);
            
              if (!spvar)
                MYSQL_YYABORT;
            
              spvar->type= var_type;
              spvar->dflt= dflt_value_item;
            
              if (lex->sphead->fill_field_definition(YYTHD, lex, var_type,
                                                     &spvar->field_def))
              {
                MYSQL_YYABORT;
              }
            
              spvar->field_def.field_name= spvar->name.str;
              spvar->field_def.pack_flag |= FIELDFLAG_MAYBE_NULL;
            
              /* The last instruction is responsible for freeing LEX. */

              sp_instr_set *is= new sp_instr_set(lex->sphead->instructions(),
                                                 pctx,
                                                 var_idx,
                                                 dflt_value_item,
                                                 var_type,
                                                 lex,
                                                 (i == num_vars - 1));
              if (is == NULL ||
                  lex->sphead->add_instr(is))
                MYSQL_YYABORT;
            }

            pctx->declare_var_boundary(0);
            if (lex->sphead->restore_lex(YYTHD))
              MYSQL_YYABORT;
            (yyval.spblock).vars= (yyvsp[(2) - (5)].num);
            (yyval.spblock).conds= (yyval.spblock).hndlrs= (yyval.spblock).curs= 0;
          }
    break;

  case 207:

/* Line 1455 of yacc.c  */
#line 2505 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_pcontext *spc= lex->spcont;

	    if (spc->find_cond(&(yyvsp[(2) - (5)].lex_str), TRUE))
	    {
	      my_error(ER_SP_DUP_COND, MYF(0), (yyvsp[(2) - (5)].lex_str).str);
	      MYSQL_YYABORT;
	    }
	    if(YYTHD->lex->spcont->push_cond(&(yyvsp[(2) - (5)].lex_str), (yyvsp[(5) - (5)].spcondtype)))
              MYSQL_YYABORT;
            (yyval.spblock).vars= (yyval.spblock).hndlrs= (yyval.spblock).curs= 0;
            (yyval.spblock).conds= 1;
          }
    break;

  case 208:

/* Line 1455 of yacc.c  */
#line 2520 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_head *sp= lex->sphead;

            lex->spcont= lex->spcont->push_context(LABEL_HANDLER_SCOPE);

            sp_pcontext *ctx= lex->spcont;
            sp_instr_hpush_jump *i=
              new sp_instr_hpush_jump(sp->instructions(), ctx, (yyvsp[(2) - (4)].num),
	                              ctx->current_var_count());
            if (i == NULL ||
	        sp->add_instr(i) ||
                sp->push_backpatch(i, ctx->push_label((char *)"", 0)))
              MYSQL_YYABORT;
          }
    break;

  case 209:

/* Line 1455 of yacc.c  */
#line 2536 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_head *sp= lex->sphead;
            sp_pcontext *ctx= lex->spcont;
            sp_label_t *hlab= lex->spcont->pop_label(); /* After this hdlr */
            sp_instr_hreturn *i;

            if ((yyvsp[(2) - (7)].num) == SP_HANDLER_CONTINUE)
            {
              i= new sp_instr_hreturn(sp->instructions(), ctx,
                                      ctx->current_var_count());
              if (i == NULL ||
	          sp->add_instr(i))
                MYSQL_YYABORT;
            }
            else
            {  /* EXIT or UNDO handler, just jump to the end of the block */
              i= new sp_instr_hreturn(sp->instructions(), ctx, 0);
              if (i == NULL ||
	          sp->add_instr(i) ||
	          sp->push_backpatch(i, lex->spcont->last_label())) /* Block end */
                MYSQL_YYABORT;
            }
            lex->sphead->backpatch(hlab);

            lex->spcont= ctx->pop_context();

            (yyval.spblock).vars= (yyval.spblock).conds= (yyval.spblock).curs= 0;
            (yyval.spblock).hndlrs= (yyvsp[(6) - (7)].num);
            lex->spcont->add_handlers((yyvsp[(6) - (7)].num));
          }
    break;

  case 210:

/* Line 1455 of yacc.c  */
#line 2568 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_head *sp= lex->sphead;
            sp_pcontext *ctx= lex->spcont;
            uint offp;
            sp_instr_cpush *i;

            if (ctx->find_cursor(&(yyvsp[(2) - (5)].lex_str), &offp, TRUE))
            {
              my_error(ER_SP_DUP_CURS, MYF(0), (yyvsp[(2) - (5)].lex_str).str);
              delete (yyvsp[(5) - (5)].lex);
              MYSQL_YYABORT;
            }
            i= new sp_instr_cpush(sp->instructions(), ctx, (yyvsp[(5) - (5)].lex),
                                  ctx->current_cursor_count());
	    if (i == NULL ||
                sp->add_instr(i) ||
	        ctx->push_cursor(&(yyvsp[(2) - (5)].lex_str)))
              MYSQL_YYABORT;
            (yyval.spblock).vars= (yyval.spblock).conds= (yyval.spblock).hndlrs= 0;
            (yyval.spblock).curs= 1;
          }
    break;

  case 211:

/* Line 1455 of yacc.c  */
#line 2593 "sql_yacc.yy"
    {
            Lex->sphead->reset_lex(YYTHD);
          }
    break;

  case 212:

/* Line 1455 of yacc.c  */
#line 2597 "sql_yacc.yy"
    {
            LEX *lex= Lex;

            DBUG_ASSERT(lex->sql_command == SQLCOM_SELECT);

            if (lex->result)
            {
              my_message(ER_SP_BAD_CURSOR_SELECT, ER(ER_SP_BAD_CURSOR_SELECT),
                         MYF(0));
              MYSQL_YYABORT;
            }
            lex->sp_lex_in_use= TRUE;
            (yyval.lex)= lex;
            if (lex->sphead->restore_lex(YYTHD))
              MYSQL_YYABORT;
          }
    break;

  case 213:

/* Line 1455 of yacc.c  */
#line 2616 "sql_yacc.yy"
    { (yyval.num)= SP_HANDLER_EXIT; }
    break;

  case 214:

/* Line 1455 of yacc.c  */
#line 2617 "sql_yacc.yy"
    { (yyval.num)= SP_HANDLER_CONTINUE; }
    break;

  case 215:

/* Line 1455 of yacc.c  */
#line 2623 "sql_yacc.yy"
    { (yyval.num)= 1; }
    break;

  case 216:

/* Line 1455 of yacc.c  */
#line 2625 "sql_yacc.yy"
    { (yyval.num)+= 1; }
    break;

  case 217:

/* Line 1455 of yacc.c  */
#line 2630 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_head *sp= lex->sphead;
            sp_pcontext *ctx= lex->spcont->parent_context();

            if (ctx->find_handler((yyvsp[(1) - (1)].spcondtype)))
            {
              my_message(ER_SP_DUP_HANDLER, ER(ER_SP_DUP_HANDLER), MYF(0));
              MYSQL_YYABORT;
            }
            else
            {
              sp_instr_hpush_jump *i=
                (sp_instr_hpush_jump *)sp->last_instruction();

              i->add_condition((yyvsp[(1) - (1)].spcondtype));
              ctx->push_handler((yyvsp[(1) - (1)].spcondtype));
            }
          }
    break;

  case 218:

/* Line 1455 of yacc.c  */
#line 2653 "sql_yacc.yy"
    { /* mysql errno */
            (yyval.spcondtype)= (sp_cond_type_t *)YYTHD->alloc(sizeof(sp_cond_type_t));
            if ((yyval.spcondtype) == NULL)
              MYSQL_YYABORT;
            (yyval.spcondtype)->type= sp_cond_type_t::number;
            (yyval.spcondtype)->mysqlerr= (yyvsp[(1) - (1)].ulong_num);
          }
    break;

  case 219:

/* Line 1455 of yacc.c  */
#line 2661 "sql_yacc.yy"
    { /* SQLSTATE */
            if (!sp_cond_check(&(yyvsp[(3) - (3)].lex_str)))
            {
              my_error(ER_SP_BAD_SQLSTATE, MYF(0), (yyvsp[(3) - (3)].lex_str).str);
              MYSQL_YYABORT;
            }
            (yyval.spcondtype)= (sp_cond_type_t *)YYTHD->alloc(sizeof(sp_cond_type_t));
            if ((yyval.spcondtype) == NULL)
              MYSQL_YYABORT;
            (yyval.spcondtype)->type= sp_cond_type_t::state;
            memcpy((yyval.spcondtype)->sqlstate, (yyvsp[(3) - (3)].lex_str).str, 5);
            (yyval.spcondtype)->sqlstate[5]= '\0';
          }
    break;

  case 220:

/* Line 1455 of yacc.c  */
#line 2677 "sql_yacc.yy"
    {}
    break;

  case 221:

/* Line 1455 of yacc.c  */
#line 2678 "sql_yacc.yy"
    {}
    break;

  case 222:

/* Line 1455 of yacc.c  */
#line 2683 "sql_yacc.yy"
    {
            (yyval.spcondtype)= (yyvsp[(1) - (1)].spcondtype);
          }
    break;

  case 223:

/* Line 1455 of yacc.c  */
#line 2687 "sql_yacc.yy"
    {
            (yyval.spcondtype)= Lex->spcont->find_cond(&(yyvsp[(1) - (1)].lex_str));
            if ((yyval.spcondtype) == NULL)
            {
              my_error(ER_SP_COND_MISMATCH, MYF(0), (yyvsp[(1) - (1)].lex_str).str);
              MYSQL_YYABORT;
            }
          }
    break;

  case 224:

/* Line 1455 of yacc.c  */
#line 2696 "sql_yacc.yy"
    {
            (yyval.spcondtype)= (sp_cond_type_t *)YYTHD->alloc(sizeof(sp_cond_type_t));
            if ((yyval.spcondtype) == NULL)
              MYSQL_YYABORT;
            (yyval.spcondtype)->type= sp_cond_type_t::warning;
          }
    break;

  case 225:

/* Line 1455 of yacc.c  */
#line 2703 "sql_yacc.yy"
    {
            (yyval.spcondtype)= (sp_cond_type_t *)YYTHD->alloc(sizeof(sp_cond_type_t));
            if ((yyval.spcondtype) == NULL)
              MYSQL_YYABORT;
            (yyval.spcondtype)->type= sp_cond_type_t::notfound;
          }
    break;

  case 226:

/* Line 1455 of yacc.c  */
#line 2710 "sql_yacc.yy"
    {
            (yyval.spcondtype)= (sp_cond_type_t *)YYTHD->alloc(sizeof(sp_cond_type_t));
            if ((yyval.spcondtype) == NULL)
              MYSQL_YYABORT;
            (yyval.spcondtype)->type= sp_cond_type_t::exception;
          }
    break;

  case 227:

/* Line 1455 of yacc.c  */
#line 2720 "sql_yacc.yy"
    {
            /* NOTE: field definition is filled in sp_decl section. */

            LEX *lex= Lex;
            sp_pcontext *spc= lex->spcont;

            if (spc->find_variable(&(yyvsp[(1) - (1)].lex_str), TRUE))
            {
              my_error(ER_SP_DUP_VAR, MYF(0), (yyvsp[(1) - (1)].lex_str).str);
              MYSQL_YYABORT;
            }
            spc->push_variable(&(yyvsp[(1) - (1)].lex_str), (enum_field_types)0, sp_param_in);
            (yyval.num)= 1;
          }
    break;

  case 228:

/* Line 1455 of yacc.c  */
#line 2735 "sql_yacc.yy"
    {
            /* NOTE: field definition is filled in sp_decl section. */

            LEX *lex= Lex;
            sp_pcontext *spc= lex->spcont;

            if (spc->find_variable(&(yyvsp[(3) - (3)].lex_str), TRUE))
            {
              my_error(ER_SP_DUP_VAR, MYF(0), (yyvsp[(3) - (3)].lex_str).str);
              MYSQL_YYABORT;
            }
            spc->push_variable(&(yyvsp[(3) - (3)].lex_str), (enum_field_types)0, sp_param_in);
            (yyval.num)= (yyvsp[(1) - (3)].num) + 1;
          }
    break;

  case 229:

/* Line 1455 of yacc.c  */
#line 2752 "sql_yacc.yy"
    { (yyval.item) = NULL; }
    break;

  case 230:

/* Line 1455 of yacc.c  */
#line 2753 "sql_yacc.yy"
    { (yyval.item) = (yyvsp[(2) - (2)].item); }
    break;

  case 244:

/* Line 1455 of yacc.c  */
#line 2774 "sql_yacc.yy"
    { Lex->sphead->new_cont_backpatch(NULL); }
    break;

  case 245:

/* Line 1455 of yacc.c  */
#line 2776 "sql_yacc.yy"
    { Lex->sphead->do_cont_backpatch(); }
    break;

  case 246:

/* Line 1455 of yacc.c  */
#line 2780 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            Lex_input_stream *lip= YYLIP;

            lex->sphead->reset_lex(thd);
            lex->sphead->m_tmp_query= lip->get_tok_start();
          }
    break;

  case 247:

/* Line 1455 of yacc.c  */
#line 2789 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            Lex_input_stream *lip= YYLIP;
            sp_head *sp= lex->sphead;

            sp->m_flags|= sp_get_flags_for_command(lex);
            if (lex->sql_command == SQLCOM_CHANGE_DB)
            { /* "USE db" doesn't work in a procedure */
              my_error(ER_SP_BADSTATEMENT, MYF(0), "USE");
              MYSQL_YYABORT;
            }
            /*
              Don't add an instruction for SET statements, since all
              instructions for them were already added during processing
              of "set" rule.
            */
            DBUG_ASSERT(lex->sql_command != SQLCOM_SET_OPTION ||
                        lex->var_list.is_empty());
            if (lex->sql_command != SQLCOM_SET_OPTION)
            {
              sp_instr_stmt *i=new sp_instr_stmt(sp->instructions(),
                                                 lex->spcont, lex);
              if (i == NULL)
                MYSQL_YYABORT;

              /*
                Extract the query statement from the tokenizer.  The
                end is either lex->ptr, if there was no lookahead,
                lex->tok_end otherwise.
              */
              if (yychar == YYEMPTY)
                i->m_query.length= lip->get_ptr() - sp->m_tmp_query;
              else
                i->m_query.length= lip->get_tok_end() - sp->m_tmp_query;
              if (!(i->m_query.str= strmake_root(thd->mem_root,
                                                 sp->m_tmp_query,
                                                 i->m_query.length)) ||
                    sp->add_instr(i))
                MYSQL_YYABORT;
            }
            if (sp->restore_lex(thd))
              MYSQL_YYABORT;
          }
    break;

  case 248:

/* Line 1455 of yacc.c  */
#line 2837 "sql_yacc.yy"
    { Lex->sphead->reset_lex(YYTHD); }
    break;

  case 249:

/* Line 1455 of yacc.c  */
#line 2839 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_head *sp= lex->sphead;

            if (sp->m_type != TYPE_ENUM_FUNCTION)
            {
              my_message(ER_SP_BADRETURN, ER(ER_SP_BADRETURN), MYF(0));
              MYSQL_YYABORT;
            }
            else
            {
              sp_instr_freturn *i;

              i= new sp_instr_freturn(sp->instructions(), lex->spcont, (yyvsp[(3) - (3)].item),
                                      sp->m_return_field_def.sql_type, lex);
              if (i == NULL ||
	          sp->add_instr(i))
                MYSQL_YYABORT;
              sp->m_flags|= sp_head::HAS_RETURN;
            }
            if (sp->restore_lex(YYTHD))
              MYSQL_YYABORT;
          }
    break;

  case 250:

/* Line 1455 of yacc.c  */
#line 2865 "sql_yacc.yy"
    { /* Unlabeled controls get a secret label. */
            LEX *lex= Lex;

            lex->spcont->push_label((char *)"", lex->sphead->instructions());
          }
    break;

  case 251:

/* Line 1455 of yacc.c  */
#line 2871 "sql_yacc.yy"
    {
            LEX *lex= Lex;

            lex->sphead->backpatch(lex->spcont->pop_label());
          }
    break;

  case 252:

/* Line 1455 of yacc.c  */
#line 2880 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_head *sp = lex->sphead;
            sp_pcontext *ctx= lex->spcont;
            sp_label_t *lab= ctx->find_label((yyvsp[(2) - (2)].lex_str).str);

            if (! lab)
            {
              my_error(ER_SP_LILABEL_MISMATCH, MYF(0), "LEAVE", (yyvsp[(2) - (2)].lex_str).str);
              MYSQL_YYABORT;
            }
            else
            {
              sp_instr_jump *i;
              uint ip= sp->instructions();
              uint n;
              /*
                When jumping to a BEGIN-END block end, the target jump
                points to the block hpop/cpop cleanup instructions,
                so we should exclude the block context here.
                When jumping to something else (i.e., SP_LAB_ITER),
                there are no hpop/cpop at the jump destination,
                so we should include the block context here for cleanup.
              */
              bool exclusive= (lab->type == SP_LAB_BEGIN);

              n= ctx->diff_handlers(lab->ctx, exclusive);
              if (n)
              {
                sp_instr_hpop *hpop= new sp_instr_hpop(ip++, ctx, n);
                if (hpop == NULL)
                  MYSQL_YYABORT;
                sp->add_instr(hpop);
              }
              n= ctx->diff_cursors(lab->ctx, exclusive);
              if (n)
              {
                sp_instr_cpop *cpop= new sp_instr_cpop(ip++, ctx, n);
                if (cpop == NULL)
                  MYSQL_YYABORT;
                sp->add_instr(cpop);
              }
              i= new sp_instr_jump(ip, ctx);
              if (i == NULL)
                MYSQL_YYABORT;
              sp->push_backpatch(i, lab);  /* Jumping forward */
              sp->add_instr(i);
            }
          }
    break;

  case 253:

/* Line 1455 of yacc.c  */
#line 2933 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_head *sp= lex->sphead;
            sp_pcontext *ctx= lex->spcont;
            sp_label_t *lab= ctx->find_label((yyvsp[(2) - (2)].lex_str).str);

            if (! lab || lab->type != SP_LAB_ITER)
            {
              my_error(ER_SP_LILABEL_MISMATCH, MYF(0), "ITERATE", (yyvsp[(2) - (2)].lex_str).str);
              MYSQL_YYABORT;
            }
            else
            {
              sp_instr_jump *i;
              uint ip= sp->instructions();
              uint n;

              n= ctx->diff_handlers(lab->ctx, FALSE);  /* Inclusive the dest. */
              if (n)
              {
                sp_instr_hpop *hpop= new sp_instr_hpop(ip++, ctx, n);
                if (hpop == NULL ||
                    sp->add_instr(hpop))
                  MYSQL_YYABORT;
              }
              n= ctx->diff_cursors(lab->ctx, FALSE);  /* Inclusive the dest. */
              if (n)
              {
                sp_instr_cpop *cpop= new sp_instr_cpop(ip++, ctx, n);
                if (cpop == NULL ||
                    sp->add_instr(cpop))
                  MYSQL_YYABORT;
              }
              i= new sp_instr_jump(ip, ctx, lab->ip); /* Jump back */
              if (i == NULL ||
                  sp->add_instr(i))
                MYSQL_YYABORT;
            }
          }
    break;

  case 254:

/* Line 1455 of yacc.c  */
#line 2976 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_head *sp= lex->sphead;
            uint offset;
            sp_instr_copen *i;

            if (! lex->spcont->find_cursor(&(yyvsp[(2) - (2)].lex_str), &offset))
            {
              my_error(ER_SP_CURSOR_MISMATCH, MYF(0), (yyvsp[(2) - (2)].lex_str).str);
              MYSQL_YYABORT;
            }
            i= new sp_instr_copen(sp->instructions(), lex->spcont, offset);
            if (i == NULL ||
                sp->add_instr(i))
              MYSQL_YYABORT;
          }
    break;

  case 255:

/* Line 1455 of yacc.c  */
#line 2996 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_head *sp= lex->sphead;
            uint offset;
            sp_instr_cfetch *i;

            if (! lex->spcont->find_cursor(&(yyvsp[(3) - (4)].lex_str), &offset))
            {
              my_error(ER_SP_CURSOR_MISMATCH, MYF(0), (yyvsp[(3) - (4)].lex_str).str);
              MYSQL_YYABORT;
            }
            i= new sp_instr_cfetch(sp->instructions(), lex->spcont, offset);
            if (i == NULL ||
                sp->add_instr(i))
              MYSQL_YYABORT;
          }
    break;

  case 256:

/* Line 1455 of yacc.c  */
#line 3013 "sql_yacc.yy"
    {}
    break;

  case 257:

/* Line 1455 of yacc.c  */
#line 3018 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_head *sp= lex->sphead;
            uint offset;
            sp_instr_cclose *i;

            if (! lex->spcont->find_cursor(&(yyvsp[(2) - (2)].lex_str), &offset))
            {
              my_error(ER_SP_CURSOR_MISMATCH, MYF(0), (yyvsp[(2) - (2)].lex_str).str);
              MYSQL_YYABORT;
            }
            i= new sp_instr_cclose(sp->instructions(), lex->spcont,  offset);
            if (i == NULL ||
                sp->add_instr(i))
              MYSQL_YYABORT;
          }
    break;

  case 261:

/* Line 1455 of yacc.c  */
#line 3044 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_head *sp= lex->sphead;
            sp_pcontext *spc= lex->spcont;
            sp_variable_t *spv;

            if (!spc || !(spv = spc->find_variable(&(yyvsp[(1) - (1)].lex_str))))
            {
              my_error(ER_SP_UNDECLARED_VAR, MYF(0), (yyvsp[(1) - (1)].lex_str).str);
              MYSQL_YYABORT;
            }
            else
            {
              /* An SP local variable */
              sp_instr_cfetch *i= (sp_instr_cfetch *)sp->last_instruction();

              i->add_to_varlist(spv);
            }
          }
    break;

  case 262:

/* Line 1455 of yacc.c  */
#line 3064 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_head *sp= lex->sphead;
            sp_pcontext *spc= lex->spcont;
            sp_variable_t *spv;

            if (!spc || !(spv = spc->find_variable(&(yyvsp[(3) - (3)].lex_str))))
            {
              my_error(ER_SP_UNDECLARED_VAR, MYF(0), (yyvsp[(3) - (3)].lex_str).str);
              MYSQL_YYABORT;
            }
            else
            {
              /* An SP local variable */
              sp_instr_cfetch *i= (sp_instr_cfetch *)sp->last_instruction();

              i->add_to_varlist(spv);
            }
          }
    break;

  case 263:

/* Line 1455 of yacc.c  */
#line 3086 "sql_yacc.yy"
    { Lex->sphead->reset_lex(YYTHD); }
    break;

  case 264:

/* Line 1455 of yacc.c  */
#line 3088 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_head *sp= lex->sphead;
            sp_pcontext *ctx= lex->spcont;
            uint ip= sp->instructions();
            sp_instr_jump_if_not *i = new sp_instr_jump_if_not(ip, ctx,
                                                               (yyvsp[(2) - (3)].item), lex);
            if (i == NULL ||
	        sp->push_backpatch(i, ctx->push_label((char *)"", 0)) ||
                sp->add_cont_backpatch(i) ||
                sp->add_instr(i))
              MYSQL_YYABORT;
            if (sp->restore_lex(YYTHD))
              MYSQL_YYABORT;
          }
    break;

  case 265:

/* Line 1455 of yacc.c  */
#line 3104 "sql_yacc.yy"
    {
            sp_head *sp= Lex->sphead;
            sp_pcontext *ctx= Lex->spcont;
            uint ip= sp->instructions();
            sp_instr_jump *i = new sp_instr_jump(ip, ctx);
            if (i == NULL ||
                sp->add_instr(i))
              MYSQL_YYABORT;
            sp->backpatch(ctx->pop_label());
            sp->push_backpatch(i, ctx->push_label((char *)"", 0));
          }
    break;

  case 266:

/* Line 1455 of yacc.c  */
#line 3116 "sql_yacc.yy"
    {
            LEX *lex= Lex;

            lex->sphead->backpatch(lex->spcont->pop_label());
          }
    break;

  case 272:

/* Line 1455 of yacc.c  */
#line 3136 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            case_stmt_action_case(lex);
            lex->sphead->reset_lex(YYTHD); /* For expr $3 */
          }
    break;

  case 273:

/* Line 1455 of yacc.c  */
#line 3142 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (case_stmt_action_expr(lex, (yyvsp[(3) - (3)].item)))
              MYSQL_YYABORT;

            /* For expr $3 */
            if (lex->sphead->restore_lex(YYTHD))
              MYSQL_YYABORT;
          }
    break;

  case 274:

/* Line 1455 of yacc.c  */
#line 3155 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            case_stmt_action_end_case(lex, true);
          }
    break;

  case 275:

/* Line 1455 of yacc.c  */
#line 3163 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            case_stmt_action_case(lex);
          }
    break;

  case 276:

/* Line 1455 of yacc.c  */
#line 3171 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            case_stmt_action_end_case(lex, false);
          }
    break;

  case 281:

/* Line 1455 of yacc.c  */
#line 3189 "sql_yacc.yy"
    {
            Lex->sphead->reset_lex(YYTHD); /* For expr $3 */
          }
    break;

  case 282:

/* Line 1455 of yacc.c  */
#line 3193 "sql_yacc.yy"
    {
            /* Simple case: <caseval> = <whenval> */

            LEX *lex= Lex;
            if (case_stmt_action_when(lex, (yyvsp[(3) - (3)].item), true))
              MYSQL_YYABORT;
            /* For expr $3 */
            if (lex->sphead->restore_lex(YYTHD))
              MYSQL_YYABORT;
          }
    break;

  case 283:

/* Line 1455 of yacc.c  */
#line 3205 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (case_stmt_action_then(lex))
              MYSQL_YYABORT;
          }
    break;

  case 284:

/* Line 1455 of yacc.c  */
#line 3214 "sql_yacc.yy"
    {
            Lex->sphead->reset_lex(YYTHD); /* For expr $3 */
          }
    break;

  case 285:

/* Line 1455 of yacc.c  */
#line 3218 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (case_stmt_action_when(lex, (yyvsp[(3) - (3)].item), false))
              MYSQL_YYABORT;
            /* For expr $3 */
            if (lex->sphead->restore_lex(YYTHD))
              MYSQL_YYABORT;
          }
    break;

  case 286:

/* Line 1455 of yacc.c  */
#line 3228 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (case_stmt_action_then(lex))
              MYSQL_YYABORT;
          }
    break;

  case 287:

/* Line 1455 of yacc.c  */
#line 3237 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_head *sp= lex->sphead;
            uint ip= sp->instructions();
            sp_instr_error *i= new sp_instr_error(ip, lex->spcont,
                                                  ER_SP_CASE_NOT_FOUND);
            if (i == NULL ||
                sp->add_instr(i))
              MYSQL_YYABORT;
          }
    break;

  case 289:

/* Line 1455 of yacc.c  */
#line 3252 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_pcontext *ctx= lex->spcont;
            sp_label_t *lab= ctx->find_label((yyvsp[(1) - (2)].lex_str).str);

            if (lab)
            {
              my_error(ER_SP_LABEL_REDEFINE, MYF(0), (yyvsp[(1) - (2)].lex_str).str);
              MYSQL_YYABORT;
            }
            else
            {
              lab= lex->spcont->push_label((yyvsp[(1) - (2)].lex_str).str,
                                           lex->sphead->instructions());
              lab->type= SP_LAB_ITER;
            }
          }
    break;

  case 290:

/* Line 1455 of yacc.c  */
#line 3270 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_label_t *lab= lex->spcont->pop_label();

            if ((yyvsp[(5) - (5)].lex_str).str)
            {
              if (my_strcasecmp(system_charset_info, (yyvsp[(5) - (5)].lex_str).str, lab->name) != 0)
              {
                my_error(ER_SP_LABEL_MISMATCH, MYF(0), (yyvsp[(5) - (5)].lex_str).str);
                MYSQL_YYABORT;
              }
            }
            lex->sphead->backpatch(lab);
          }
    break;

  case 291:

/* Line 1455 of yacc.c  */
#line 3287 "sql_yacc.yy"
    { (yyval.lex_str)= null_lex_str; }
    break;

  case 292:

/* Line 1455 of yacc.c  */
#line 3288 "sql_yacc.yy"
    { (yyval.lex_str)= (yyvsp[(1) - (1)].lex_str); }
    break;

  case 293:

/* Line 1455 of yacc.c  */
#line 3293 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_pcontext *ctx= lex->spcont;
            sp_label_t *lab= ctx->find_label((yyvsp[(1) - (2)].lex_str).str);

            if (lab)
            {
              my_error(ER_SP_LABEL_REDEFINE, MYF(0), (yyvsp[(1) - (2)].lex_str).str);
              MYSQL_YYABORT;
            }

            lab= lex->spcont->push_label((yyvsp[(1) - (2)].lex_str).str,
                                         lex->sphead->instructions());
            lab->type= SP_LAB_BEGIN;
          }
    break;

  case 294:

/* Line 1455 of yacc.c  */
#line 3309 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_label_t *lab= lex->spcont->pop_label();

            if ((yyvsp[(5) - (5)].lex_str).str)
            {
              if (my_strcasecmp(system_charset_info, (yyvsp[(5) - (5)].lex_str).str, lab->name) != 0)
              {
                my_error(ER_SP_LABEL_MISMATCH, MYF(0), (yyvsp[(5) - (5)].lex_str).str);
                MYSQL_YYABORT;
              }
            }
          }
    break;

  case 295:

/* Line 1455 of yacc.c  */
#line 3325 "sql_yacc.yy"
    { /* Unlabeled blocks get a secret label. */
            LEX *lex= Lex;
            uint ip= lex->sphead->instructions();
            sp_label_t *lab= lex->spcont->push_label((char *)"", ip);
            lab->type= SP_LAB_BEGIN;
          }
    break;

  case 296:

/* Line 1455 of yacc.c  */
#line 3332 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->spcont->pop_label();
          }
    break;

  case 297:

/* Line 1455 of yacc.c  */
#line 3340 "sql_yacc.yy"
    { /* QQ This is just a dummy for grouping declarations and statements
              together. No [[NOT] ATOMIC] yet, and we need to figure out how
              make it coexist with the existing BEGIN COMMIT/ROLLBACK. */
            LEX *lex= Lex;
            lex->spcont= lex->spcont->push_context(LABEL_DEFAULT_SCOPE);
          }
    break;

  case 298:

/* Line 1455 of yacc.c  */
#line 3349 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_head *sp= lex->sphead;
            sp_pcontext *ctx= lex->spcont;
            sp_instr *i;

            sp->backpatch(ctx->last_label()); /* We always have a label */
            if ((yyvsp[(3) - (5)].spblock).hndlrs)
            {
              i= new sp_instr_hpop(sp->instructions(), ctx, (yyvsp[(3) - (5)].spblock).hndlrs);
              if (i == NULL ||
                  sp->add_instr(i))
                MYSQL_YYABORT;
            }
            if ((yyvsp[(3) - (5)].spblock).curs)
            {
              i= new sp_instr_cpop(sp->instructions(), ctx, (yyvsp[(3) - (5)].spblock).curs);
              if (i == NULL ||
                  sp->add_instr(i))
                MYSQL_YYABORT;
            }
            lex->spcont= ctx->pop_context();
          }
    break;

  case 299:

/* Line 1455 of yacc.c  */
#line 3377 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            uint ip= lex->sphead->instructions();
            sp_label_t *lab= lex->spcont->last_label();  /* Jumping back */
            sp_instr_jump *i = new sp_instr_jump(ip, lex->spcont, lab->ip);
            if (i == NULL ||
                lex->sphead->add_instr(i))
              MYSQL_YYABORT;
	  }
    break;

  case 300:

/* Line 1455 of yacc.c  */
#line 3387 "sql_yacc.yy"
    { Lex->sphead->reset_lex(YYTHD); }
    break;

  case 301:

/* Line 1455 of yacc.c  */
#line 3389 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_head *sp= lex->sphead;
            uint ip= sp->instructions();
            sp_instr_jump_if_not *i = new sp_instr_jump_if_not(ip, lex->spcont,
                                                               (yyvsp[(3) - (4)].item), lex);
            if (i == NULL ||
	    /* Jumping forward */
                sp->push_backpatch(i, lex->spcont->last_label()) ||
                sp->new_cont_backpatch(i) ||
                sp->add_instr(i))
              MYSQL_YYABORT;
            if (sp->restore_lex(YYTHD))
              MYSQL_YYABORT;
          }
    break;

  case 302:

/* Line 1455 of yacc.c  */
#line 3405 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            uint ip= lex->sphead->instructions();
            sp_label_t *lab= lex->spcont->last_label();  /* Jumping back */
            sp_instr_jump *i = new sp_instr_jump(ip, lex->spcont, lab->ip);
            if (i == NULL ||
                lex->sphead->add_instr(i))
              MYSQL_YYABORT;
            lex->sphead->do_cont_backpatch();
          }
    break;

  case 303:

/* Line 1455 of yacc.c  */
#line 3416 "sql_yacc.yy"
    { Lex->sphead->reset_lex(YYTHD); }
    break;

  case 304:

/* Line 1455 of yacc.c  */
#line 3418 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            uint ip= lex->sphead->instructions();
            sp_label_t *lab= lex->spcont->last_label();  /* Jumping back */
            sp_instr_jump_if_not *i = new sp_instr_jump_if_not(ip, lex->spcont,
                                                               (yyvsp[(5) - (7)].item), lab->ip,
                                                               lex);
            if (i == NULL ||
                lex->sphead->add_instr(i))
              MYSQL_YYABORT;
            if (lex->sphead->restore_lex(YYTHD))
              MYSQL_YYABORT;
            /* We can shortcut the cont_backpatch here */
            i->m_cont_dest= ip+1;
          }
    break;

  case 305:

/* Line 1455 of yacc.c  */
#line 3437 "sql_yacc.yy"
    { Lex->trg_chistics.action_time= TRG_ACTION_BEFORE; }
    break;

  case 306:

/* Line 1455 of yacc.c  */
#line 3439 "sql_yacc.yy"
    { Lex->trg_chistics.action_time= TRG_ACTION_AFTER; }
    break;

  case 307:

/* Line 1455 of yacc.c  */
#line 3444 "sql_yacc.yy"
    { Lex->trg_chistics.event= TRG_EVENT_INSERT; }
    break;

  case 308:

/* Line 1455 of yacc.c  */
#line 3446 "sql_yacc.yy"
    { Lex->trg_chistics.event= TRG_EVENT_UPDATE; }
    break;

  case 309:

/* Line 1455 of yacc.c  */
#line 3448 "sql_yacc.yy"
    { Lex->trg_chistics.event= TRG_EVENT_DELETE; }
    break;

  case 313:

/* Line 1455 of yacc.c  */
#line 3482 "sql_yacc.yy"
    {}
    break;

  case 314:

/* Line 1455 of yacc.c  */
#line 3484 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->logfile_group_name= (yyvsp[(4) - (4)].lex_str).str;
          }
    break;

  case 315:

/* Line 1455 of yacc.c  */
#line 3494 "sql_yacc.yy"
    { 
            Lex->alter_tablespace_info->ts_alter_tablespace_type= ALTER_TABLESPACE_ADD_FILE; 
          }
    break;

  case 316:

/* Line 1455 of yacc.c  */
#line 3500 "sql_yacc.yy"
    { 
            Lex->alter_tablespace_info->ts_alter_tablespace_type= ALTER_TABLESPACE_DROP_FILE; 
          }
    break;

  case 321:

/* Line 1455 of yacc.c  */
#line 3523 "sql_yacc.yy"
    {}
    break;

  case 368:

/* Line 1455 of yacc.c  */
#line 3617 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->data_file_name= (yyvsp[(2) - (2)].lex_str).str;
          }
    break;

  case 369:

/* Line 1455 of yacc.c  */
#line 3625 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->undo_file_name= (yyvsp[(2) - (2)].lex_str).str;
          }
    break;

  case 370:

/* Line 1455 of yacc.c  */
#line 3633 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->redo_file_name= (yyvsp[(2) - (2)].lex_str).str;
          }
    break;

  case 371:

/* Line 1455 of yacc.c  */
#line 3641 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info= new st_alter_tablespace();
            if (lex->alter_tablespace_info == NULL)
              MYSQL_YYABORT;
            lex->alter_tablespace_info->tablespace_name= (yyvsp[(1) - (1)].lex_str).str;
            lex->sql_command= SQLCOM_ALTER_TABLESPACE;
          }
    break;

  case 372:

/* Line 1455 of yacc.c  */
#line 3653 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info= new st_alter_tablespace();
            if (lex->alter_tablespace_info == NULL)
              MYSQL_YYABORT;
            lex->alter_tablespace_info->logfile_group_name= (yyvsp[(1) - (1)].lex_str).str;
            lex->sql_command= SQLCOM_ALTER_TABLESPACE;
          }
    break;

  case 373:

/* Line 1455 of yacc.c  */
#line 3665 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->ts_access_mode= TS_READ_ONLY;
          }
    break;

  case 374:

/* Line 1455 of yacc.c  */
#line 3670 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->ts_access_mode= TS_READ_WRITE;
          }
    break;

  case 375:

/* Line 1455 of yacc.c  */
#line 3675 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->ts_access_mode= TS_NOT_ACCESSIBLE;
          }
    break;

  case 376:

/* Line 1455 of yacc.c  */
#line 3683 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->initial_size= (yyvsp[(3) - (3)].ulonglong_number);
          }
    break;

  case 377:

/* Line 1455 of yacc.c  */
#line 3691 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->autoextend_size= (yyvsp[(3) - (3)].ulonglong_number);
          }
    break;

  case 378:

/* Line 1455 of yacc.c  */
#line 3699 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->max_size= (yyvsp[(3) - (3)].ulonglong_number);
          }
    break;

  case 379:

/* Line 1455 of yacc.c  */
#line 3707 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->extent_size= (yyvsp[(3) - (3)].ulonglong_number);
          }
    break;

  case 380:

/* Line 1455 of yacc.c  */
#line 3715 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->undo_buffer_size= (yyvsp[(3) - (3)].ulonglong_number);
          }
    break;

  case 381:

/* Line 1455 of yacc.c  */
#line 3723 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->redo_buffer_size= (yyvsp[(3) - (3)].ulonglong_number);
          }
    break;

  case 382:

/* Line 1455 of yacc.c  */
#line 3731 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (lex->alter_tablespace_info->nodegroup_id != UNDEF_NODEGROUP)
            {
              my_error(ER_FILEGROUP_OPTION_ONLY_ONCE,MYF(0),"NODEGROUP");
              MYSQL_YYABORT;
            }
            lex->alter_tablespace_info->nodegroup_id= (yyvsp[(3) - (3)].ulong_num);
          }
    break;

  case 383:

/* Line 1455 of yacc.c  */
#line 3744 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (lex->alter_tablespace_info->ts_comment != NULL)
            {
              my_error(ER_FILEGROUP_OPTION_ONLY_ONCE,MYF(0),"COMMENT");
              MYSQL_YYABORT;
            }
            lex->alter_tablespace_info->ts_comment= (yyvsp[(3) - (3)].lex_str).str;
          }
    break;

  case 384:

/* Line 1455 of yacc.c  */
#line 3757 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (lex->alter_tablespace_info->storage_engine != NULL)
            {
              my_error(ER_FILEGROUP_OPTION_ONLY_ONCE,MYF(0),
                       "STORAGE ENGINE");
              MYSQL_YYABORT;
            }
            lex->alter_tablespace_info->storage_engine= (yyvsp[(4) - (4)].db_type);
          }
    break;

  case 387:

/* Line 1455 of yacc.c  */
#line 3776 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->wait_until_completed= TRUE;
          }
    break;

  case 388:

/* Line 1455 of yacc.c  */
#line 3781 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (!(lex->alter_tablespace_info->wait_until_completed))
            {
              my_error(ER_FILEGROUP_OPTION_ONLY_ONCE,MYF(0),"NO_WAIT");
              MYSQL_YYABORT;
            }
            lex->alter_tablespace_info->wait_until_completed= FALSE;
          }
    break;

  case 389:

/* Line 1455 of yacc.c  */
#line 3793 "sql_yacc.yy"
    { (yyval.ulonglong_number)= (yyvsp[(1) - (1)].ulong_num);}
    break;

  case 390:

/* Line 1455 of yacc.c  */
#line 3795 "sql_yacc.yy"
    {
            ulonglong number;
            uint text_shift_number= 0;
            longlong prefix_number;
            char *start_ptr= (yyvsp[(1) - (1)].lex_str).str;
            uint str_len= (yyvsp[(1) - (1)].lex_str).length;
            char *end_ptr= start_ptr + str_len;
            int error;
            prefix_number= my_strtoll10(start_ptr, &end_ptr, &error);
            if ((start_ptr + str_len - 1) == end_ptr)
            {
              switch (end_ptr[0])
              {
                case 'g':
                case 'G':
                  text_shift_number+=10;
                case 'm':
                case 'M':
                  text_shift_number+=10;
                case 'k':
                case 'K':
                  text_shift_number+=10;
                  break;
                default:
                {
                  my_error(ER_WRONG_SIZE_NUMBER, MYF(0));
                  MYSQL_YYABORT;
                }
              }
              if (prefix_number >> 31)
              {
                my_error(ER_SIZE_OVERFLOW_ERROR, MYF(0));
                MYSQL_YYABORT;
              }
              number= prefix_number << text_shift_number;
            }
            else
            {
              my_error(ER_WRONG_SIZE_NUMBER, MYF(0));
              MYSQL_YYABORT;
            }
            (yyval.ulonglong_number)= number;
          }
    break;

  case 391:

/* Line 1455 of yacc.c  */
#line 3845 "sql_yacc.yy"
    {}
    break;

  case 392:

/* Line 1455 of yacc.c  */
#line 3848 "sql_yacc.yy"
    {}
    break;

  case 393:

/* Line 1455 of yacc.c  */
#line 3850 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            TABLE_LIST *src_table;
            LEX *lex= thd->lex;

            lex->create_info.options|= HA_LEX_CREATE_TABLE_LIKE;
            src_table= lex->select_lex.add_table_to_list(thd, (yyvsp[(2) - (2)].table), NULL, 0,
                                                         TL_READ);
            if (! src_table)
              MYSQL_YYABORT;
            /* CREATE TABLE ... LIKE is not allowed for views. */
            src_table->required_type= FRMTYPE_TABLE;
          }
    break;

  case 394:

/* Line 1455 of yacc.c  */
#line 3864 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            TABLE_LIST *src_table;
            LEX *lex= thd->lex;

            lex->create_info.options|= HA_LEX_CREATE_TABLE_LIKE;
            src_table= lex->select_lex.add_table_to_list(thd, (yyvsp[(3) - (4)].table), NULL, 0,
                                                         TL_READ);
            if (! src_table)
              MYSQL_YYABORT;
            /* CREATE TABLE ... LIKE is not allowed for views. */
            src_table->required_type= FRMTYPE_TABLE;
          }
    break;

  case 395:

/* Line 1455 of yacc.c  */
#line 3882 "sql_yacc.yy"
    {}
    break;

  case 396:

/* Line 1455 of yacc.c  */
#line 3885 "sql_yacc.yy"
    {
             Select->set_braces(1);
             Lex->create_select_start_with_brace= TRUE;
           }
    break;

  case 397:

/* Line 1455 of yacc.c  */
#line 3889 "sql_yacc.yy"
    {}
    break;

  case 398:

/* Line 1455 of yacc.c  */
#line 3893 "sql_yacc.yy"
    {}
    break;

  case 399:

/* Line 1455 of yacc.c  */
#line 3895 "sql_yacc.yy"
    {
            Select->set_braces(0);
            Lex->create_select_start_with_brace= FALSE;
          }
    break;

  case 400:

/* Line 1455 of yacc.c  */
#line 3899 "sql_yacc.yy"
    {}
    break;

  case 401:

/* Line 1455 of yacc.c  */
#line 3901 "sql_yacc.yy"
    {
            Select->set_braces(1);
            Lex->create_select_start_with_brace= TRUE;
          }
    break;

  case 402:

/* Line 1455 of yacc.c  */
#line 3905 "sql_yacc.yy"
    {}
    break;

  case 403:

/* Line 1455 of yacc.c  */
#line 3933 "sql_yacc.yy"
    {}
    break;

  case 405:

/* Line 1455 of yacc.c  */
#line 3939 "sql_yacc.yy"
    {
#ifdef WITH_PARTITION_STORAGE_ENGINE
            LEX *lex= Lex;
            LEX_STRING partition_name={C_STRING_WITH_LEN("partition")};
            if (!plugin_is_ready(&partition_name, MYSQL_STORAGE_ENGINE_PLUGIN))
            {
              my_error(ER_OPTION_PREVENTS_STATEMENT, MYF(0),
                       "--skip-partition");
              MYSQL_YYABORT;
            }
            lex->part_info= new partition_info();
            if (!lex->part_info)
            {
              mem_alloc_error(sizeof(partition_info));
              MYSQL_YYABORT;
            }
            if (lex->sql_command == SQLCOM_ALTER_TABLE)
            {
              lex->alter_info.flags|= ALTER_PARTITION;
            }
#else
            my_error(ER_FEATURE_DISABLED, MYF(0),
                     "partitioning", "--with-partition");
            MYSQL_YYABORT;
#endif

          }
    break;

  case 407:

/* Line 1455 of yacc.c  */
#line 3971 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (!lex->part_info)
            {
              my_parse_error(ER(ER_PARTITION_ENTRY_ERROR));
              MYSQL_YYABORT;
            }
            /*
              We enter here when opening the frm file to translate
              partition info string into part_info data structure.
            */
          }
    break;

  case 408:

/* Line 1455 of yacc.c  */
#line 3983 "sql_yacc.yy"
    {}
    break;

  case 410:

/* Line 1455 of yacc.c  */
#line 3992 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->part_info->list_of_part_fields= TRUE;
            lex->part_info->part_type= HASH_PARTITION;
          }
    break;

  case 411:

/* Line 1455 of yacc.c  */
#line 3998 "sql_yacc.yy"
    { Lex->part_info->part_type= HASH_PARTITION; }
    break;

  case 412:

/* Line 1455 of yacc.c  */
#line 3999 "sql_yacc.yy"
    {}
    break;

  case 413:

/* Line 1455 of yacc.c  */
#line 4001 "sql_yacc.yy"
    { Lex->part_info->part_type= RANGE_PARTITION; }
    break;

  case 414:

/* Line 1455 of yacc.c  */
#line 4002 "sql_yacc.yy"
    {}
    break;

  case 415:

/* Line 1455 of yacc.c  */
#line 4004 "sql_yacc.yy"
    { Lex->part_info->part_type= LIST_PARTITION; }
    break;

  case 416:

/* Line 1455 of yacc.c  */
#line 4005 "sql_yacc.yy"
    {}
    break;

  case 417:

/* Line 1455 of yacc.c  */
#line 4009 "sql_yacc.yy"
    {}
    break;

  case 418:

/* Line 1455 of yacc.c  */
#line 4011 "sql_yacc.yy"
    { Lex->part_info->linear_hash_ind= TRUE;}
    break;

  case 419:

/* Line 1455 of yacc.c  */
#line 4015 "sql_yacc.yy"
    {}
    break;

  case 420:

/* Line 1455 of yacc.c  */
#line 4016 "sql_yacc.yy"
    {}
    break;

  case 421:

/* Line 1455 of yacc.c  */
#line 4020 "sql_yacc.yy"
    {}
    break;

  case 422:

/* Line 1455 of yacc.c  */
#line 4021 "sql_yacc.yy"
    {}
    break;

  case 423:

/* Line 1455 of yacc.c  */
#line 4026 "sql_yacc.yy"
    {
            if (Lex->part_info->part_field_list.push_back((yyvsp[(1) - (1)].lex_str).str))
            {
              mem_alloc_error(1);
              MYSQL_YYABORT;
            }
          }
    break;

  case 424:

/* Line 1455 of yacc.c  */
#line 4037 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            uint expr_len= (uint)((yyvsp[(4) - (5)].simple_string) - (yyvsp[(2) - (5)].simple_string)) - 1;
            lex->part_info->list_of_part_fields= FALSE;
            lex->part_info->part_expr= (yyvsp[(3) - (5)].item);
            char *func_string= (char*) sql_memdup((yyvsp[(2) - (5)].simple_string)+1, expr_len);
            if (func_string == NULL)
              MYSQL_YYABORT;
            lex->part_info->part_func_string= func_string;
            lex->part_info->part_func_len= expr_len;
          }
    break;

  case 425:

/* Line 1455 of yacc.c  */
#line 4052 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            uint expr_len= (uint)((yyvsp[(4) - (5)].simple_string) - (yyvsp[(2) - (5)].simple_string)) - 1;
            lex->part_info->list_of_subpart_fields= FALSE;
            lex->part_info->subpart_expr= (yyvsp[(3) - (5)].item);
            char *func_string= (char*) sql_memdup((yyvsp[(2) - (5)].simple_string)+1, expr_len);
            if (func_string == NULL)
              MYSQL_YYABORT;
            lex->part_info->subpart_func_string= func_string;        
            lex->part_info->subpart_func_len= expr_len;
          }
    break;

  case 426:

/* Line 1455 of yacc.c  */
#line 4067 "sql_yacc.yy"
    {}
    break;

  case 427:

/* Line 1455 of yacc.c  */
#line 4069 "sql_yacc.yy"
    { 
            uint no_parts= (yyvsp[(2) - (2)].ulong_num);
            LEX *lex= Lex;
            if (no_parts == 0)
            {
              my_error(ER_NO_PARTS_ERROR, MYF(0), "partitions");
              MYSQL_YYABORT;
            }

            lex->part_info->no_parts= no_parts;
            lex->part_info->use_default_no_partitions= FALSE;
          }
    break;

  case 428:

/* Line 1455 of yacc.c  */
#line 4084 "sql_yacc.yy"
    {}
    break;

  case 429:

/* Line 1455 of yacc.c  */
#line 4086 "sql_yacc.yy"
    { Lex->part_info->subpart_type= HASH_PARTITION; }
    break;

  case 430:

/* Line 1455 of yacc.c  */
#line 4087 "sql_yacc.yy"
    {}
    break;

  case 431:

/* Line 1455 of yacc.c  */
#line 4090 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->part_info->subpart_type= HASH_PARTITION;
            lex->part_info->list_of_subpart_fields= TRUE;
          }
    break;

  case 432:

/* Line 1455 of yacc.c  */
#line 4095 "sql_yacc.yy"
    {}
    break;

  case 433:

/* Line 1455 of yacc.c  */
#line 4099 "sql_yacc.yy"
    {}
    break;

  case 434:

/* Line 1455 of yacc.c  */
#line 4100 "sql_yacc.yy"
    {}
    break;

  case 435:

/* Line 1455 of yacc.c  */
#line 4105 "sql_yacc.yy"
    {
            if (Lex->part_info->subpart_field_list.push_back((yyvsp[(1) - (1)].lex_str).str))
            {
              mem_alloc_error(1);
              MYSQL_YYABORT;
            }
          }
    break;

  case 436:

/* Line 1455 of yacc.c  */
#line 4116 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            bool not_corr_func;
            not_corr_func= !lex->safe_to_cache_query;
            lex->safe_to_cache_query= 1;
            if (not_corr_func)
            {
              my_parse_error(ER(ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR));
              MYSQL_YYABORT;
            }
            (yyval.item)=(yyvsp[(1) - (1)].item);
          }
    break;

  case 437:

/* Line 1455 of yacc.c  */
#line 4131 "sql_yacc.yy"
    {}
    break;

  case 438:

/* Line 1455 of yacc.c  */
#line 4133 "sql_yacc.yy"
    {
            uint no_parts= (yyvsp[(2) - (2)].ulong_num);
            LEX *lex= Lex;
            if (no_parts == 0)
            {
              my_error(ER_NO_PARTS_ERROR, MYF(0), "subpartitions");
              MYSQL_YYABORT;
            }
            lex->part_info->no_subparts= no_parts;
            lex->part_info->use_default_no_subpartitions= FALSE;
          }
    break;

  case 439:

/* Line 1455 of yacc.c  */
#line 4148 "sql_yacc.yy"
    {}
    break;

  case 440:

/* Line 1455 of yacc.c  */
#line 4150 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            partition_info *part_info= lex->part_info;
            uint count_curr_parts= part_info->partitions.elements;
            if (part_info->no_parts != 0)
            {
              if (part_info->no_parts !=
                  count_curr_parts)
              {
                my_parse_error(ER(ER_PARTITION_WRONG_NO_PART_ERROR));
                MYSQL_YYABORT;
              }
            }
            else if (count_curr_parts > 0)
            {
              part_info->no_parts= count_curr_parts;
            }
            part_info->count_curr_subparts= 0;
          }
    break;

  case 441:

/* Line 1455 of yacc.c  */
#line 4172 "sql_yacc.yy"
    {}
    break;

  case 442:

/* Line 1455 of yacc.c  */
#line 4173 "sql_yacc.yy"
    {}
    break;

  case 443:

/* Line 1455 of yacc.c  */
#line 4178 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            partition_info *part_info= lex->part_info;
            partition_element *p_elem= new partition_element();

            if (!p_elem || part_info->partitions.push_back(p_elem))
            {
              mem_alloc_error(sizeof(partition_element));
              MYSQL_YYABORT;
            }
            p_elem->part_state= PART_NORMAL;
            part_info->curr_part_elem= p_elem;
            part_info->current_partition= p_elem;
            part_info->use_default_partitions= FALSE;
            part_info->use_default_no_partitions= FALSE;
          }
    break;

  case 444:

/* Line 1455 of yacc.c  */
#line 4198 "sql_yacc.yy"
    {}
    break;

  case 445:

/* Line 1455 of yacc.c  */
#line 4203 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            partition_info *part_info= lex->part_info;
            partition_element *p_elem= part_info->curr_part_elem;
            p_elem->partition_name= (yyvsp[(1) - (1)].lex_str).str;
          }
    break;

  case 446:

/* Line 1455 of yacc.c  */
#line 4213 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (! lex->is_partition_management())
            {
              if (lex->part_info->part_type == RANGE_PARTITION)
              {
                my_error(ER_PARTITION_REQUIRES_VALUES_ERROR, MYF(0),
                         "RANGE", "LESS THAN");
                MYSQL_YYABORT;
              }
              if (lex->part_info->part_type == LIST_PARTITION)
              {
                my_error(ER_PARTITION_REQUIRES_VALUES_ERROR, MYF(0),
                         "LIST", "IN");
                MYSQL_YYABORT;
              }
            }
            else
              lex->part_info->part_type= HASH_PARTITION;
          }
    break;

  case 447:

/* Line 1455 of yacc.c  */
#line 4234 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (! lex->is_partition_management())
            {
              if (Lex->part_info->part_type != RANGE_PARTITION)
              {
                my_error(ER_PARTITION_WRONG_VALUES_ERROR, MYF(0),
                         "RANGE", "LESS THAN");
                MYSQL_YYABORT;
              }
            }
            else
              lex->part_info->part_type= RANGE_PARTITION;
          }
    break;

  case 448:

/* Line 1455 of yacc.c  */
#line 4249 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (! lex->is_partition_management())
            {
              if (Lex->part_info->part_type != LIST_PARTITION)
              {
                my_error(ER_PARTITION_WRONG_VALUES_ERROR, MYF(0),
                         "LIST", "IN");
                MYSQL_YYABORT;
              }
            }
            else
              lex->part_info->part_type= LIST_PARTITION;
          }
    break;

  case 449:

/* Line 1455 of yacc.c  */
#line 4267 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (lex->part_info->defined_max_value)
            {
              my_parse_error(ER(ER_PARTITION_MAXVALUE_ERROR));
              MYSQL_YYABORT;
            }
            lex->part_info->defined_max_value= TRUE;
            lex->part_info->curr_part_elem->max_value= TRUE;
            lex->part_info->curr_part_elem->range_value= LONGLONG_MAX;
          }
    break;

  case 450:

/* Line 1455 of yacc.c  */
#line 4279 "sql_yacc.yy"
    {
            if (Lex->part_info->defined_max_value)
            {
              my_parse_error(ER(ER_PARTITION_MAXVALUE_ERROR));
              MYSQL_YYABORT;
            }
            if (Lex->part_info->curr_part_elem->has_null_value)
            {
              my_parse_error(ER(ER_NULL_IN_VALUES_LESS_THAN));
              MYSQL_YYABORT;
            }
          }
    break;

  case 453:

/* Line 1455 of yacc.c  */
#line 4300 "sql_yacc.yy"
    {
            partition_info *part_info= Lex->part_info;
            if (!((yyvsp[(2) - (3)].p_elem_value)->unsigned_flag))
              part_info->curr_part_elem->signed_flag= TRUE;
            part_info->curr_part_elem->range_value= (yyvsp[(2) - (3)].p_elem_value)->value;
          }
    break;

  case 454:

/* Line 1455 of yacc.c  */
#line 4309 "sql_yacc.yy"
    {}
    break;

  case 455:

/* Line 1455 of yacc.c  */
#line 4310 "sql_yacc.yy"
    {}
    break;

  case 456:

/* Line 1455 of yacc.c  */
#line 4315 "sql_yacc.yy"
    {
            part_elem_value *value_ptr= (yyvsp[(1) - (1)].p_elem_value);
            partition_info *part_info= Lex->part_info;
            if (!value_ptr->unsigned_flag)
              part_info->curr_part_elem->signed_flag= TRUE;
            if (!value_ptr->null_value &&
               part_info->curr_part_elem->
                list_val_list.push_back(value_ptr))
            {
              mem_alloc_error(sizeof(part_elem_value));
              MYSQL_YYABORT;
            }
          }
    break;

  case 457:

/* Line 1455 of yacc.c  */
#line 4332 "sql_yacc.yy"
    {
            Item *part_expr= (yyvsp[(1) - (1)].item);
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            Name_resolution_context *context= &lex->current_select->context;
            TABLE_LIST *save_list= context->table_list;
            const char *save_where= thd->where;

            context->table_list= 0;
            thd->where= "partition function";

            part_elem_value *value_ptr= 
              (part_elem_value*)sql_alloc(sizeof(part_elem_value));
            if (!value_ptr)
            {
              mem_alloc_error(sizeof(part_elem_value));
              MYSQL_YYABORT;
            }
            if (part_expr->walk(&Item::check_partition_func_processor, 0,
                                NULL))
            {
              my_error(ER_PARTITION_FUNCTION_IS_NOT_ALLOWED, MYF(0));
              MYSQL_YYABORT;
            }
            if (part_expr->fix_fields(YYTHD, (Item**)0) ||
                ((context->table_list= save_list), FALSE) ||
                (!part_expr->const_item()) ||
                (!lex->safe_to_cache_query))
            {
              my_error(ER_NO_CONST_EXPR_IN_RANGE_OR_LIST_ERROR, MYF(0));
              MYSQL_YYABORT;
            }
            thd->where= save_where;
            value_ptr->value= part_expr->val_int();
            value_ptr->unsigned_flag= TRUE;
            if (!part_expr->unsigned_flag &&
                value_ptr->value < 0)
              value_ptr->unsigned_flag= FALSE;
            if ((value_ptr->null_value= part_expr->null_value))
            {
              if (Lex->part_info->curr_part_elem->has_null_value)
              {
                my_error(ER_MULTIPLE_DEF_CONST_IN_LIST_PART_ERROR, MYF(0));
                MYSQL_YYABORT;
              }
              Lex->part_info->curr_part_elem->has_null_value= TRUE;
            }
            else if (part_expr->result_type() != INT_RESULT)
            {
              my_parse_error(ER(ER_INCONSISTENT_TYPE_OF_FUNCTIONS_ERROR));
              MYSQL_YYABORT;
            }
            (yyval.p_elem_value)= value_ptr; 
          }
    break;

  case 458:

/* Line 1455 of yacc.c  */
#line 4390 "sql_yacc.yy"
    {
            if (Lex->part_info->no_subparts != 0 &&
                !Lex->part_info->use_default_subpartitions)
            {
              /*
                We come here when we have defined subpartitions on the first
                partition but not on all the subsequent partitions. 
              */
              my_parse_error(ER(ER_PARTITION_WRONG_NO_SUBPART_ERROR));
              MYSQL_YYABORT;
            }
          }
    break;

  case 459:

/* Line 1455 of yacc.c  */
#line 4403 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            partition_info *part_info= lex->part_info;
            if (part_info->no_subparts != 0)
            {
              if (part_info->no_subparts !=
                  part_info->count_curr_subparts)
              {
                my_parse_error(ER(ER_PARTITION_WRONG_NO_SUBPART_ERROR));
                MYSQL_YYABORT;
              }
            }
            else if (part_info->count_curr_subparts > 0)
            {
              if (part_info->partitions.elements > 1)
              {
                my_parse_error(ER(ER_PARTITION_WRONG_NO_SUBPART_ERROR));
                MYSQL_YYABORT;
              }
              part_info->no_subparts= part_info->count_curr_subparts;
            }
            part_info->count_curr_subparts= 0;
          }
    break;

  case 460:

/* Line 1455 of yacc.c  */
#line 4429 "sql_yacc.yy"
    {}
    break;

  case 461:

/* Line 1455 of yacc.c  */
#line 4430 "sql_yacc.yy"
    {}
    break;

  case 462:

/* Line 1455 of yacc.c  */
#line 4435 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            partition_info *part_info= lex->part_info;
            partition_element *curr_part= part_info->current_partition;
            partition_element *sub_p_elem= new partition_element(curr_part);
            if (part_info->use_default_subpartitions &&
                part_info->partitions.elements >= 2)
            {
              /*
                create table t1 (a int)
                partition by list (a) subpartition by hash (a)
                (partition p0 values in (1),
                 partition p1 values in (2) subpartition sp11);
                causes use to arrive since we are on the second
                partition, but still use_default_subpartitions
                is set. When we come here we're processing at least
                the second partition (the current partition processed
                have already been put into the partitions list.
              */
              my_parse_error(ER(ER_PARTITION_WRONG_NO_SUBPART_ERROR));
              MYSQL_YYABORT;
            }
            if (!sub_p_elem ||
             curr_part->subpartitions.push_back(sub_p_elem))
            {
              mem_alloc_error(sizeof(partition_element));
              MYSQL_YYABORT;
            }
            part_info->curr_part_elem= sub_p_elem;
            part_info->use_default_subpartitions= FALSE;
            part_info->use_default_no_subpartitions= FALSE;
            part_info->count_curr_subparts++;
          }
    break;

  case 463:

/* Line 1455 of yacc.c  */
#line 4468 "sql_yacc.yy"
    {}
    break;

  case 464:

/* Line 1455 of yacc.c  */
#line 4473 "sql_yacc.yy"
    { Lex->part_info->curr_part_elem->partition_name= (yyvsp[(1) - (1)].lex_str).str; }
    break;

  case 465:

/* Line 1455 of yacc.c  */
#line 4477 "sql_yacc.yy"
    {}
    break;

  case 466:

/* Line 1455 of yacc.c  */
#line 4478 "sql_yacc.yy"
    {}
    break;

  case 467:

/* Line 1455 of yacc.c  */
#line 4482 "sql_yacc.yy"
    {}
    break;

  case 468:

/* Line 1455 of yacc.c  */
#line 4483 "sql_yacc.yy"
    {}
    break;

  case 469:

/* Line 1455 of yacc.c  */
#line 4488 "sql_yacc.yy"
    { Lex->part_info->curr_part_elem->tablespace_name= (yyvsp[(3) - (3)].lex_str).str; }
    break;

  case 470:

/* Line 1455 of yacc.c  */
#line 4490 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->part_info->curr_part_elem->engine_type= (yyvsp[(4) - (4)].db_type);
            lex->part_info->default_engine_type= (yyvsp[(4) - (4)].db_type);
          }
    break;

  case 471:

/* Line 1455 of yacc.c  */
#line 4496 "sql_yacc.yy"
    { Lex->part_info->curr_part_elem->nodegroup_id= (uint16) (yyvsp[(3) - (3)].ulong_num); }
    break;

  case 472:

/* Line 1455 of yacc.c  */
#line 4498 "sql_yacc.yy"
    { Lex->part_info->curr_part_elem->part_max_rows= (ha_rows) (yyvsp[(3) - (3)].ulonglong_number); }
    break;

  case 473:

/* Line 1455 of yacc.c  */
#line 4500 "sql_yacc.yy"
    { Lex->part_info->curr_part_elem->part_min_rows= (ha_rows) (yyvsp[(3) - (3)].ulonglong_number); }
    break;

  case 474:

/* Line 1455 of yacc.c  */
#line 4502 "sql_yacc.yy"
    { Lex->part_info->curr_part_elem->data_file_name= (yyvsp[(4) - (4)].lex_str).str; }
    break;

  case 475:

/* Line 1455 of yacc.c  */
#line 4504 "sql_yacc.yy"
    { Lex->part_info->curr_part_elem->index_file_name= (yyvsp[(4) - (4)].lex_str).str; }
    break;

  case 476:

/* Line 1455 of yacc.c  */
#line 4506 "sql_yacc.yy"
    { Lex->part_info->curr_part_elem->part_comment= (yyvsp[(3) - (3)].lex_str).str; }
    break;

  case 477:

/* Line 1455 of yacc.c  */
#line 4515 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->lock_option= TL_READ_DEFAULT;
            if (lex->sql_command == SQLCOM_INSERT)
              lex->sql_command= SQLCOM_INSERT_SELECT;
            else if (lex->sql_command == SQLCOM_REPLACE)
              lex->sql_command= SQLCOM_REPLACE_SELECT;
            /*
              The following work only with the local list, the global list
              is created correctly in this case
            */
            lex->current_select->table_list.save_and_clear(&lex->save_list);
            mysql_init_select(lex);
            lex->current_select->parsing_place= SELECT_LIST;

            if (lex->sql_command == SQLCOM_CREATE_TABLE &&
                (lex->create_info.options & HA_LEX_CREATE_IF_NOT_EXISTS))
            {
              Lex_input_stream *lip= YYLIP;

              if (lex->spcont)
                lex->create_select_pos= lip->get_tok_start() -
                  lex->sphead->m_tmp_query;
              else
                lex->create_select_pos= lip->get_tok_start() - lip->get_buf();
              lex->create_select_in_comment= (lip->in_comment == DISCARD_COMMENT);
            }
          }
    break;

  case 478:

/* Line 1455 of yacc.c  */
#line 4544 "sql_yacc.yy"
    {
            Select->parsing_place= NO_MATTER;
          }
    break;

  case 479:

/* Line 1455 of yacc.c  */
#line 4548 "sql_yacc.yy"
    {
            /*
              The following work only with the local list, the global list
              is created correctly in this case
            */
            Lex->current_select->table_list.push_front(&Lex->save_list);
          }
    break;

  case 480:

/* Line 1455 of yacc.c  */
#line 4558 "sql_yacc.yy"
    {}
    break;

  case 481:

/* Line 1455 of yacc.c  */
#line 4559 "sql_yacc.yy"
    {}
    break;

  case 482:

/* Line 1455 of yacc.c  */
#line 4563 "sql_yacc.yy"
    {}
    break;

  case 483:

/* Line 1455 of yacc.c  */
#line 4564 "sql_yacc.yy"
    {}
    break;

  case 484:

/* Line 1455 of yacc.c  */
#line 4568 "sql_yacc.yy"
    {}
    break;

  case 485:

/* Line 1455 of yacc.c  */
#line 4569 "sql_yacc.yy"
    {}
    break;

  case 486:

/* Line 1455 of yacc.c  */
#line 4573 "sql_yacc.yy"
    {}
    break;

  case 487:

/* Line 1455 of yacc.c  */
#line 4574 "sql_yacc.yy"
    {}
    break;

  case 488:

/* Line 1455 of yacc.c  */
#line 4578 "sql_yacc.yy"
    { (yyval.num)= 0; }
    break;

  case 489:

/* Line 1455 of yacc.c  */
#line 4579 "sql_yacc.yy"
    { (yyval.num)= (yyvsp[(1) - (1)].num);}
    break;

  case 490:

/* Line 1455 of yacc.c  */
#line 4583 "sql_yacc.yy"
    { (yyval.num)=(yyvsp[(1) - (1)].num); }
    break;

  case 491:

/* Line 1455 of yacc.c  */
#line 4584 "sql_yacc.yy"
    { (yyval.num)= (yyvsp[(1) - (2)].num) | (yyvsp[(2) - (2)].num); }
    break;

  case 492:

/* Line 1455 of yacc.c  */
#line 4588 "sql_yacc.yy"
    { (yyval.num)=HA_LEX_CREATE_TMP_TABLE; }
    break;

  case 493:

/* Line 1455 of yacc.c  */
#line 4592 "sql_yacc.yy"
    { (yyval.num)= 0; }
    break;

  case 494:

/* Line 1455 of yacc.c  */
#line 4593 "sql_yacc.yy"
    { (yyval.num)=HA_LEX_CREATE_IF_NOT_EXISTS; }
    break;

  case 502:

/* Line 1455 of yacc.c  */
#line 4614 "sql_yacc.yy"
    {
            Lex->create_info.db_type= (yyvsp[(3) - (3)].db_type);
            Lex->create_info.used_fields|= HA_CREATE_USED_ENGINE;
          }
    break;

  case 503:

/* Line 1455 of yacc.c  */
#line 4619 "sql_yacc.yy"
    {
            Lex->create_info.db_type= (yyvsp[(3) - (3)].db_type);
            WARN_DEPRECATED(yythd, "6.0", "TYPE=storage_engine",
                            "'ENGINE=storage_engine'");
            Lex->create_info.used_fields|= HA_CREATE_USED_ENGINE;
          }
    break;

  case 504:

/* Line 1455 of yacc.c  */
#line 4626 "sql_yacc.yy"
    {
            Lex->create_info.max_rows= (yyvsp[(3) - (3)].ulonglong_number);
            Lex->create_info.used_fields|= HA_CREATE_USED_MAX_ROWS;
          }
    break;

  case 505:

/* Line 1455 of yacc.c  */
#line 4631 "sql_yacc.yy"
    {
            Lex->create_info.min_rows= (yyvsp[(3) - (3)].ulonglong_number);
            Lex->create_info.used_fields|= HA_CREATE_USED_MIN_ROWS;
          }
    break;

  case 506:

/* Line 1455 of yacc.c  */
#line 4636 "sql_yacc.yy"
    {
            Lex->create_info.avg_row_length=(yyvsp[(3) - (3)].ulong_num);
            Lex->create_info.used_fields|= HA_CREATE_USED_AVG_ROW_LENGTH;
          }
    break;

  case 507:

/* Line 1455 of yacc.c  */
#line 4641 "sql_yacc.yy"
    {
            Lex->create_info.password=(yyvsp[(3) - (3)].lex_str).str;
            Lex->create_info.used_fields|= HA_CREATE_USED_PASSWORD;
          }
    break;

  case 508:

/* Line 1455 of yacc.c  */
#line 4646 "sql_yacc.yy"
    {
            Lex->create_info.comment=(yyvsp[(3) - (3)].lex_str);
            Lex->create_info.used_fields|= HA_CREATE_USED_COMMENT;
          }
    break;

  case 509:

/* Line 1455 of yacc.c  */
#line 4651 "sql_yacc.yy"
    {
            Lex->create_info.auto_increment_value=(yyvsp[(3) - (3)].ulonglong_number);
            Lex->create_info.used_fields|= HA_CREATE_USED_AUTO;
          }
    break;

  case 510:

/* Line 1455 of yacc.c  */
#line 4656 "sql_yacc.yy"
    {
            switch((yyvsp[(3) - (3)].ulong_num)) {
            case 0:
                Lex->create_info.table_options|= HA_OPTION_NO_PACK_KEYS;
                break;
            case 1:
                Lex->create_info.table_options|= HA_OPTION_PACK_KEYS;
                break;
            default:
                my_parse_error(ER(ER_SYNTAX_ERROR));
                MYSQL_YYABORT;
            }
            Lex->create_info.used_fields|= HA_CREATE_USED_PACK_KEYS;
          }
    break;

  case 511:

/* Line 1455 of yacc.c  */
#line 4671 "sql_yacc.yy"
    {
            Lex->create_info.table_options&=
              ~(HA_OPTION_PACK_KEYS | HA_OPTION_NO_PACK_KEYS);
            Lex->create_info.used_fields|= HA_CREATE_USED_PACK_KEYS;
          }
    break;

  case 512:

/* Line 1455 of yacc.c  */
#line 4677 "sql_yacc.yy"
    {
            Lex->create_info.table_options|= (yyvsp[(3) - (3)].ulong_num) ? HA_OPTION_CHECKSUM : HA_OPTION_NO_CHECKSUM;
            Lex->create_info.used_fields|= HA_CREATE_USED_CHECKSUM;
          }
    break;

  case 513:

/* Line 1455 of yacc.c  */
#line 4682 "sql_yacc.yy"
    {
             Lex->create_info.table_options|= (yyvsp[(3) - (3)].ulong_num) ? HA_OPTION_CHECKSUM : HA_OPTION_NO_CHECKSUM;
             Lex->create_info.used_fields|= HA_CREATE_USED_CHECKSUM;
          }
    break;

  case 514:

/* Line 1455 of yacc.c  */
#line 4687 "sql_yacc.yy"
    {
            Lex->create_info.table_options|= (yyvsp[(3) - (3)].ulong_num) ? HA_OPTION_DELAY_KEY_WRITE : HA_OPTION_NO_DELAY_KEY_WRITE;
            Lex->create_info.used_fields|= HA_CREATE_USED_DELAY_KEY_WRITE;
          }
    break;

  case 515:

/* Line 1455 of yacc.c  */
#line 4692 "sql_yacc.yy"
    {
            Lex->create_info.row_type= (yyvsp[(3) - (3)].row_type);
            Lex->create_info.used_fields|= HA_CREATE_USED_ROW_FORMAT;
          }
    break;

  case 516:

/* Line 1455 of yacc.c  */
#line 4697 "sql_yacc.yy"
    {
            /* Move the union list to the merge_list */
            LEX *lex=Lex;
            TABLE_LIST *table_list= lex->select_lex.get_table_list();
            lex->create_info.merge_list= lex->select_lex.table_list;
            lex->create_info.merge_list.elements--;
            lex->create_info.merge_list.first= table_list->next_local;
            lex->select_lex.table_list.elements=1;
            lex->select_lex.table_list.next= &(table_list->next_local);
            table_list->next_local= 0;
            lex->create_info.used_fields|= HA_CREATE_USED_UNION;
          }
    break;

  case 519:

/* Line 1455 of yacc.c  */
#line 4712 "sql_yacc.yy"
    {
            Lex->create_info.merge_insert_method= (yyvsp[(3) - (3)].ulong_num);
            Lex->create_info.used_fields|= HA_CREATE_USED_INSERT_METHOD;
          }
    break;

  case 520:

/* Line 1455 of yacc.c  */
#line 4717 "sql_yacc.yy"
    {
            Lex->create_info.data_file_name= (yyvsp[(4) - (4)].lex_str).str;
            Lex->create_info.used_fields|= HA_CREATE_USED_DATADIR;
          }
    break;

  case 521:

/* Line 1455 of yacc.c  */
#line 4722 "sql_yacc.yy"
    {
            Lex->create_info.index_file_name= (yyvsp[(4) - (4)].lex_str).str;
            Lex->create_info.used_fields|= HA_CREATE_USED_INDEXDIR;
          }
    break;

  case 522:

/* Line 1455 of yacc.c  */
#line 4727 "sql_yacc.yy"
    {Lex->create_info.tablespace= (yyvsp[(2) - (2)].lex_str).str;}
    break;

  case 523:

/* Line 1455 of yacc.c  */
#line 4729 "sql_yacc.yy"
    {Lex->create_info.storage_media= HA_SM_DISK;}
    break;

  case 524:

/* Line 1455 of yacc.c  */
#line 4731 "sql_yacc.yy"
    {Lex->create_info.storage_media= HA_SM_MEMORY;}
    break;

  case 525:

/* Line 1455 of yacc.c  */
#line 4733 "sql_yacc.yy"
    {
            Lex->create_info.connect_string.str= (yyvsp[(3) - (3)].lex_str).str;
            Lex->create_info.connect_string.length= (yyvsp[(3) - (3)].lex_str).length;
            Lex->create_info.used_fields|= HA_CREATE_USED_CONNECTION;
          }
    break;

  case 526:

/* Line 1455 of yacc.c  */
#line 4739 "sql_yacc.yy"
    {
            Lex->create_info.used_fields|= HA_CREATE_USED_KEY_BLOCK_SIZE;
            Lex->create_info.key_block_size= (yyvsp[(3) - (3)].ulong_num);
          }
    break;

  case 527:

/* Line 1455 of yacc.c  */
#line 4747 "sql_yacc.yy"
    {
            HA_CREATE_INFO *cinfo= &Lex->create_info;
            if ((cinfo->used_fields & HA_CREATE_USED_DEFAULT_CHARSET) &&
                 cinfo->default_table_charset && (yyvsp[(4) - (4)].charset) &&
                 !my_charset_same(cinfo->default_table_charset,(yyvsp[(4) - (4)].charset)))
            {
              my_error(ER_CONFLICTING_DECLARATIONS, MYF(0),
                       "CHARACTER SET ", cinfo->default_table_charset->csname,
                       "CHARACTER SET ", (yyvsp[(4) - (4)].charset)->csname);
              MYSQL_YYABORT;
            }
            Lex->create_info.default_table_charset= (yyvsp[(4) - (4)].charset);
            Lex->create_info.used_fields|= HA_CREATE_USED_DEFAULT_CHARSET;
          }
    break;

  case 528:

/* Line 1455 of yacc.c  */
#line 4765 "sql_yacc.yy"
    {
            HA_CREATE_INFO *cinfo= &Lex->create_info;
            if ((cinfo->used_fields & HA_CREATE_USED_DEFAULT_CHARSET) &&
                 cinfo->default_table_charset && (yyvsp[(4) - (4)].charset) &&
                 !my_charset_same(cinfo->default_table_charset,(yyvsp[(4) - (4)].charset)))
              {
                my_error(ER_COLLATION_CHARSET_MISMATCH, MYF(0),
                         (yyvsp[(4) - (4)].charset)->name, cinfo->default_table_charset->csname);
                MYSQL_YYABORT;
              }
              Lex->create_info.default_table_charset= (yyvsp[(4) - (4)].charset);
              Lex->create_info.used_fields|= HA_CREATE_USED_DEFAULT_CHARSET;
          }
    break;

  case 529:

/* Line 1455 of yacc.c  */
#line 4782 "sql_yacc.yy"
    {
            plugin_ref plugin= ha_resolve_by_name(YYTHD, &(yyvsp[(1) - (1)].lex_str));

            if (plugin)
              (yyval.db_type)= plugin_data(plugin, handlerton*);
            else
            {
              if (YYTHD->variables.sql_mode & MODE_NO_ENGINE_SUBSTITUTION)
              {
                my_error(ER_UNKNOWN_STORAGE_ENGINE, MYF(0), (yyvsp[(1) - (1)].lex_str).str);
                MYSQL_YYABORT;
              }
              (yyval.db_type)= 0;
              push_warning_printf(YYTHD, MYSQL_ERROR::WARN_LEVEL_WARN,
                                  ER_UNKNOWN_STORAGE_ENGINE,
                                  ER(ER_UNKNOWN_STORAGE_ENGINE),
                                  (yyvsp[(1) - (1)].lex_str).str);
            }
          }
    break;

  case 530:

/* Line 1455 of yacc.c  */
#line 4805 "sql_yacc.yy"
    {
            plugin_ref plugin;
            if ((plugin= ha_resolve_by_name(YYTHD, &(yyvsp[(1) - (1)].lex_str))))
              (yyval.db_type)= plugin_data(plugin, handlerton*);
            else
            {
              my_error(ER_UNKNOWN_STORAGE_ENGINE, MYF(0), (yyvsp[(1) - (1)].lex_str).str);
              MYSQL_YYABORT;
            }
          }
    break;

  case 531:

/* Line 1455 of yacc.c  */
#line 4818 "sql_yacc.yy"
    { (yyval.row_type)= ROW_TYPE_DEFAULT; }
    break;

  case 532:

/* Line 1455 of yacc.c  */
#line 4819 "sql_yacc.yy"
    { (yyval.row_type)= ROW_TYPE_FIXED; }
    break;

  case 533:

/* Line 1455 of yacc.c  */
#line 4820 "sql_yacc.yy"
    { (yyval.row_type)= ROW_TYPE_DYNAMIC; }
    break;

  case 534:

/* Line 1455 of yacc.c  */
#line 4821 "sql_yacc.yy"
    { (yyval.row_type)= ROW_TYPE_COMPRESSED; }
    break;

  case 535:

/* Line 1455 of yacc.c  */
#line 4822 "sql_yacc.yy"
    { (yyval.row_type)= ROW_TYPE_REDUNDANT; }
    break;

  case 536:

/* Line 1455 of yacc.c  */
#line 4823 "sql_yacc.yy"
    { (yyval.row_type)= ROW_TYPE_COMPACT; }
    break;

  case 537:

/* Line 1455 of yacc.c  */
#line 4827 "sql_yacc.yy"
    { (yyval.ulong_num)= MERGE_INSERT_DISABLED; }
    break;

  case 538:

/* Line 1455 of yacc.c  */
#line 4828 "sql_yacc.yy"
    { (yyval.ulong_num)= MERGE_INSERT_TO_FIRST; }
    break;

  case 539:

/* Line 1455 of yacc.c  */
#line 4829 "sql_yacc.yy"
    { (yyval.ulong_num)= MERGE_INSERT_TO_LAST; }
    break;

  case 540:

/* Line 1455 of yacc.c  */
#line 4833 "sql_yacc.yy"
    {}
    break;

  case 542:

/* Line 1455 of yacc.c  */
#line 4838 "sql_yacc.yy"
    {(yyval.num) = (int) STRING_RESULT; }
    break;

  case 543:

/* Line 1455 of yacc.c  */
#line 4839 "sql_yacc.yy"
    {(yyval.num) = (int) REAL_RESULT; }
    break;

  case 544:

/* Line 1455 of yacc.c  */
#line 4840 "sql_yacc.yy"
    {(yyval.num) = (int) DECIMAL_RESULT; }
    break;

  case 545:

/* Line 1455 of yacc.c  */
#line 4841 "sql_yacc.yy"
    {(yyval.num) = (int) INT_RESULT; }
    break;

  case 551:

/* Line 1455 of yacc.c  */
#line 4857 "sql_yacc.yy"
    {
            Lex->col_list.empty(); /* Alloced by sql_alloc */
          }
    break;

  case 552:

/* Line 1455 of yacc.c  */
#line 4864 "sql_yacc.yy"
    {
            if (add_create_index (Lex, (yyvsp[(1) - (7)].key_type), (yyvsp[(2) - (7)].simple_string)))
              MYSQL_YYABORT;
          }
    break;

  case 553:

/* Line 1455 of yacc.c  */
#line 4870 "sql_yacc.yy"
    {
            if (add_create_index (Lex, (yyvsp[(1) - (8)].key_type), (yyvsp[(3) - (8)].simple_string)))
              MYSQL_YYABORT;
          }
    break;

  case 554:

/* Line 1455 of yacc.c  */
#line 4876 "sql_yacc.yy"
    {
            if (add_create_index (Lex, (yyvsp[(1) - (8)].key_type), (yyvsp[(3) - (8)].simple_string)))
              MYSQL_YYABORT;
          }
    break;

  case 555:

/* Line 1455 of yacc.c  */
#line 4882 "sql_yacc.yy"
    {
            if (add_create_index (Lex, (yyvsp[(2) - (8)].key_type), (yyvsp[(3) - (8)].simple_string) ? (yyvsp[(3) - (8)].simple_string) : (yyvsp[(1) - (8)].simple_string)))
              MYSQL_YYABORT;
          }
    break;

  case 556:

/* Line 1455 of yacc.c  */
#line 4887 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            const char *key_name= (yyvsp[(1) - (8)].simple_string) ? (yyvsp[(1) - (8)].simple_string) : (yyvsp[(4) - (8)].simple_string);
            const char *fkey_name = (yyvsp[(4) - (8)].simple_string) ? (yyvsp[(4) - (8)].simple_string) : key_name;
            Key *key= new Foreign_key(fkey_name, lex->col_list,
                                      (yyvsp[(8) - (8)].table),
                                      lex->ref_list,
                                      lex->fk_delete_opt,
                                      lex->fk_update_opt,
                                      lex->fk_match_option);
            if (key == NULL)
              MYSQL_YYABORT;
            lex->alter_info.key_list.push_back(key);
            if (add_create_index (lex, Key::MULTIPLE, key_name, 
                                  &default_key_create_info, 1))
              MYSQL_YYABORT;
            /* Only used for ALTER TABLE. Ignored otherwise. */
            lex->alter_info.flags|= ALTER_FOREIGN_KEY;
          }
    break;

  case 557:

/* Line 1455 of yacc.c  */
#line 4907 "sql_yacc.yy"
    {
            Lex->col_list.empty(); /* Alloced by sql_alloc */
          }
    break;

  case 558:

/* Line 1455 of yacc.c  */
#line 4911 "sql_yacc.yy"
    {
            Lex->col_list.empty(); /* Alloced by sql_alloc */
          }
    break;

  case 562:

/* Line 1455 of yacc.c  */
#line 4926 "sql_yacc.yy"
    { (yyval.simple_string)=(char*) 0; }
    break;

  case 563:

/* Line 1455 of yacc.c  */
#line 4927 "sql_yacc.yy"
    { (yyval.simple_string)= (yyvsp[(1) - (1)].simple_string); }
    break;

  case 564:

/* Line 1455 of yacc.c  */
#line 4931 "sql_yacc.yy"
    { (yyval.simple_string)=(yyvsp[(2) - (2)].simple_string); }
    break;

  case 565:

/* Line 1455 of yacc.c  */
#line 4936 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->length=lex->dec=0;
            lex->type=0;
            lex->default_value= lex->on_update_value= 0;
            lex->comment=null_lex_str;
            lex->charset=NULL;
          }
    break;

  case 566:

/* Line 1455 of yacc.c  */
#line 4945 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            if (add_field_to_list(lex->thd, &(yyvsp[(1) - (4)].lex_str), (enum enum_field_types) (yyvsp[(3) - (4)].num),
                                  lex->length,lex->dec,lex->type,
                                  lex->default_value, lex->on_update_value, 
                                  &lex->comment,
                                  lex->change,&lex->interval_list,lex->charset,
                                  lex->uint_geom_type))
              MYSQL_YYABORT;
          }
    break;

  case 567:

/* Line 1455 of yacc.c  */
#line 4958 "sql_yacc.yy"
    { (yyval.num)=(yyvsp[(1) - (3)].num); }
    break;

  case 568:

/* Line 1455 of yacc.c  */
#line 4959 "sql_yacc.yy"
    { (yyval.num)=(yyvsp[(1) - (3)].num); }
    break;

  case 569:

/* Line 1455 of yacc.c  */
#line 4960 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_FLOAT; }
    break;

  case 570:

/* Line 1455 of yacc.c  */
#line 4962 "sql_yacc.yy"
    {
            Lex->length= (char*) "1";
            (yyval.num)=MYSQL_TYPE_BIT;
          }
    break;

  case 571:

/* Line 1455 of yacc.c  */
#line 4967 "sql_yacc.yy"
    {
            (yyval.num)=MYSQL_TYPE_BIT;
          }
    break;

  case 572:

/* Line 1455 of yacc.c  */
#line 4971 "sql_yacc.yy"
    {
            Lex->length= (char*) "1";
            (yyval.num)=MYSQL_TYPE_TINY;
          }
    break;

  case 573:

/* Line 1455 of yacc.c  */
#line 4976 "sql_yacc.yy"
    {
            Lex->length= (char*) "1";
            (yyval.num)=MYSQL_TYPE_TINY;
          }
    break;

  case 574:

/* Line 1455 of yacc.c  */
#line 4981 "sql_yacc.yy"
    {
            (yyval.num)=MYSQL_TYPE_STRING;
          }
    break;

  case 575:

/* Line 1455 of yacc.c  */
#line 4985 "sql_yacc.yy"
    {
            Lex->length= (char*) "1";
            (yyval.num)=MYSQL_TYPE_STRING;
          }
    break;

  case 576:

/* Line 1455 of yacc.c  */
#line 4990 "sql_yacc.yy"
    {
            (yyval.num)=MYSQL_TYPE_STRING;
            Lex->charset=national_charset_info;
          }
    break;

  case 577:

/* Line 1455 of yacc.c  */
#line 4995 "sql_yacc.yy"
    {
            Lex->length= (char*) "1";
            (yyval.num)=MYSQL_TYPE_STRING;
            Lex->charset=national_charset_info;
          }
    break;

  case 578:

/* Line 1455 of yacc.c  */
#line 5001 "sql_yacc.yy"
    {
            Lex->charset=&my_charset_bin;
            (yyval.num)=MYSQL_TYPE_STRING;
          }
    break;

  case 579:

/* Line 1455 of yacc.c  */
#line 5006 "sql_yacc.yy"
    {
            Lex->length= (char*) "1";
            Lex->charset=&my_charset_bin;
            (yyval.num)=MYSQL_TYPE_STRING;
          }
    break;

  case 580:

/* Line 1455 of yacc.c  */
#line 5012 "sql_yacc.yy"
    {
            (yyval.num)= MYSQL_TYPE_VARCHAR;
          }
    break;

  case 581:

/* Line 1455 of yacc.c  */
#line 5016 "sql_yacc.yy"
    {
            (yyval.num)= MYSQL_TYPE_VARCHAR;
            Lex->charset=national_charset_info;
          }
    break;

  case 582:

/* Line 1455 of yacc.c  */
#line 5021 "sql_yacc.yy"
    {
            Lex->charset=&my_charset_bin;
            (yyval.num)= MYSQL_TYPE_VARCHAR;
          }
    break;

  case 583:

/* Line 1455 of yacc.c  */
#line 5026 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_YEAR; }
    break;

  case 584:

/* Line 1455 of yacc.c  */
#line 5028 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_DATE; }
    break;

  case 585:

/* Line 1455 of yacc.c  */
#line 5030 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_TIME; }
    break;

  case 586:

/* Line 1455 of yacc.c  */
#line 5032 "sql_yacc.yy"
    {
            if (YYTHD->variables.sql_mode & MODE_MAXDB)
              (yyval.num)=MYSQL_TYPE_DATETIME;
            else
            {
              /* 
                Unlike other types TIMESTAMP fields are NOT NULL by default.
              */
              Lex->type|= NOT_NULL_FLAG;
              (yyval.num)=MYSQL_TYPE_TIMESTAMP;
            }
          }
    break;

  case 587:

/* Line 1455 of yacc.c  */
#line 5045 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_DATETIME; }
    break;

  case 588:

/* Line 1455 of yacc.c  */
#line 5047 "sql_yacc.yy"
    {
            Lex->charset=&my_charset_bin;
            (yyval.num)=MYSQL_TYPE_TINY_BLOB;
          }
    break;

  case 589:

/* Line 1455 of yacc.c  */
#line 5052 "sql_yacc.yy"
    {
            Lex->charset=&my_charset_bin;
            (yyval.num)=MYSQL_TYPE_BLOB;
          }
    break;

  case 590:

/* Line 1455 of yacc.c  */
#line 5057 "sql_yacc.yy"
    {
#ifdef HAVE_SPATIAL
            Lex->charset=&my_charset_bin;
            Lex->uint_geom_type= (uint)(yyvsp[(1) - (1)].num);
            (yyval.num)=MYSQL_TYPE_GEOMETRY;
#else
            my_error(ER_FEATURE_DISABLED, MYF(0),
                     sym_group_geom.name, sym_group_geom.needed_define);
            MYSQL_YYABORT;
#endif
          }
    break;

  case 591:

/* Line 1455 of yacc.c  */
#line 5069 "sql_yacc.yy"
    {
            Lex->charset=&my_charset_bin;
            (yyval.num)=MYSQL_TYPE_MEDIUM_BLOB;
          }
    break;

  case 592:

/* Line 1455 of yacc.c  */
#line 5074 "sql_yacc.yy"
    {
            Lex->charset=&my_charset_bin;
            (yyval.num)=MYSQL_TYPE_LONG_BLOB;
          }
    break;

  case 593:

/* Line 1455 of yacc.c  */
#line 5079 "sql_yacc.yy"
    {
            Lex->charset=&my_charset_bin;
            (yyval.num)=MYSQL_TYPE_MEDIUM_BLOB;
          }
    break;

  case 594:

/* Line 1455 of yacc.c  */
#line 5084 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_MEDIUM_BLOB; }
    break;

  case 595:

/* Line 1455 of yacc.c  */
#line 5086 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_TINY_BLOB; }
    break;

  case 596:

/* Line 1455 of yacc.c  */
#line 5088 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_BLOB; }
    break;

  case 597:

/* Line 1455 of yacc.c  */
#line 5090 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_MEDIUM_BLOB; }
    break;

  case 598:

/* Line 1455 of yacc.c  */
#line 5092 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_LONG_BLOB; }
    break;

  case 599:

/* Line 1455 of yacc.c  */
#line 5094 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_NEWDECIMAL;}
    break;

  case 600:

/* Line 1455 of yacc.c  */
#line 5096 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_NEWDECIMAL;}
    break;

  case 601:

/* Line 1455 of yacc.c  */
#line 5098 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_NEWDECIMAL;}
    break;

  case 602:

/* Line 1455 of yacc.c  */
#line 5100 "sql_yacc.yy"
    {Lex->interval_list.empty();}
    break;

  case 603:

/* Line 1455 of yacc.c  */
#line 5102 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_ENUM; }
    break;

  case 604:

/* Line 1455 of yacc.c  */
#line 5104 "sql_yacc.yy"
    { Lex->interval_list.empty();}
    break;

  case 605:

/* Line 1455 of yacc.c  */
#line 5106 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_SET; }
    break;

  case 606:

/* Line 1455 of yacc.c  */
#line 5108 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_MEDIUM_BLOB; }
    break;

  case 607:

/* Line 1455 of yacc.c  */
#line 5110 "sql_yacc.yy"
    {
            (yyval.num)=MYSQL_TYPE_LONGLONG;
            Lex->type|= (AUTO_INCREMENT_FLAG | NOT_NULL_FLAG | UNSIGNED_FLAG |
              UNIQUE_FLAG);
          }
    break;

  case 608:

/* Line 1455 of yacc.c  */
#line 5118 "sql_yacc.yy"
    { (yyval.num)= Field::GEOM_GEOMETRY; }
    break;

  case 609:

/* Line 1455 of yacc.c  */
#line 5119 "sql_yacc.yy"
    { (yyval.num)= Field::GEOM_GEOMETRYCOLLECTION; }
    break;

  case 610:

/* Line 1455 of yacc.c  */
#line 5121 "sql_yacc.yy"
    {
            Lex->length= (char*)"25";
            (yyval.num)= Field::GEOM_POINT;
          }
    break;

  case 611:

/* Line 1455 of yacc.c  */
#line 5125 "sql_yacc.yy"
    { (yyval.num)= Field::GEOM_MULTIPOINT; }
    break;

  case 612:

/* Line 1455 of yacc.c  */
#line 5126 "sql_yacc.yy"
    { (yyval.num)= Field::GEOM_LINESTRING; }
    break;

  case 613:

/* Line 1455 of yacc.c  */
#line 5127 "sql_yacc.yy"
    { (yyval.num)= Field::GEOM_MULTILINESTRING; }
    break;

  case 614:

/* Line 1455 of yacc.c  */
#line 5128 "sql_yacc.yy"
    { (yyval.num)= Field::GEOM_POLYGON; }
    break;

  case 615:

/* Line 1455 of yacc.c  */
#line 5129 "sql_yacc.yy"
    { (yyval.num)= Field::GEOM_MULTIPOLYGON; }
    break;

  case 616:

/* Line 1455 of yacc.c  */
#line 5133 "sql_yacc.yy"
    {}
    break;

  case 617:

/* Line 1455 of yacc.c  */
#line 5137 "sql_yacc.yy"
    {}
    break;

  case 618:

/* Line 1455 of yacc.c  */
#line 5138 "sql_yacc.yy"
    {}
    break;

  case 619:

/* Line 1455 of yacc.c  */
#line 5142 "sql_yacc.yy"
    {}
    break;

  case 620:

/* Line 1455 of yacc.c  */
#line 5143 "sql_yacc.yy"
    {}
    break;

  case 621:

/* Line 1455 of yacc.c  */
#line 5147 "sql_yacc.yy"
    {}
    break;

  case 622:

/* Line 1455 of yacc.c  */
#line 5148 "sql_yacc.yy"
    {}
    break;

  case 623:

/* Line 1455 of yacc.c  */
#line 5149 "sql_yacc.yy"
    {}
    break;

  case 624:

/* Line 1455 of yacc.c  */
#line 5150 "sql_yacc.yy"
    {}
    break;

  case 625:

/* Line 1455 of yacc.c  */
#line 5151 "sql_yacc.yy"
    {}
    break;

  case 626:

/* Line 1455 of yacc.c  */
#line 5155 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_LONG; }
    break;

  case 627:

/* Line 1455 of yacc.c  */
#line 5156 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_TINY; }
    break;

  case 628:

/* Line 1455 of yacc.c  */
#line 5157 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_SHORT; }
    break;

  case 629:

/* Line 1455 of yacc.c  */
#line 5158 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_INT24; }
    break;

  case 630:

/* Line 1455 of yacc.c  */
#line 5159 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_LONGLONG; }
    break;

  case 631:

/* Line 1455 of yacc.c  */
#line 5164 "sql_yacc.yy"
    {
            (yyval.num)= YYTHD->variables.sql_mode & MODE_REAL_AS_FLOAT ?
              MYSQL_TYPE_FLOAT : MYSQL_TYPE_DOUBLE;
          }
    break;

  case 632:

/* Line 1455 of yacc.c  */
#line 5169 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_DOUBLE; }
    break;

  case 633:

/* Line 1455 of yacc.c  */
#line 5171 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_DOUBLE; }
    break;

  case 634:

/* Line 1455 of yacc.c  */
#line 5176 "sql_yacc.yy"
    { Lex->dec=Lex->length= (char*)0; }
    break;

  case 635:

/* Line 1455 of yacc.c  */
#line 5178 "sql_yacc.yy"
    { Lex->dec= (char*)0; }
    break;

  case 636:

/* Line 1455 of yacc.c  */
#line 5180 "sql_yacc.yy"
    {}
    break;

  case 637:

/* Line 1455 of yacc.c  */
#line 5185 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->length=(yyvsp[(2) - (5)].lex_str).str;
            lex->dec=(yyvsp[(4) - (5)].lex_str).str;
          }
    break;

  case 638:

/* Line 1455 of yacc.c  */
#line 5193 "sql_yacc.yy"
    {}
    break;

  case 639:

/* Line 1455 of yacc.c  */
#line 5194 "sql_yacc.yy"
    {}
    break;

  case 640:

/* Line 1455 of yacc.c  */
#line 5198 "sql_yacc.yy"
    {}
    break;

  case 641:

/* Line 1455 of yacc.c  */
#line 5199 "sql_yacc.yy"
    {}
    break;

  case 642:

/* Line 1455 of yacc.c  */
#line 5203 "sql_yacc.yy"
    {}
    break;

  case 643:

/* Line 1455 of yacc.c  */
#line 5204 "sql_yacc.yy"
    { Lex->type|= UNSIGNED_FLAG;}
    break;

  case 644:

/* Line 1455 of yacc.c  */
#line 5205 "sql_yacc.yy"
    { Lex->type|= UNSIGNED_FLAG | ZEROFILL_FLAG; }
    break;

  case 645:

/* Line 1455 of yacc.c  */
#line 5209 "sql_yacc.yy"
    { Lex->length= (yyvsp[(2) - (3)].lex_str).str; }
    break;

  case 646:

/* Line 1455 of yacc.c  */
#line 5210 "sql_yacc.yy"
    { Lex->length= (yyvsp[(2) - (3)].lex_str).str; }
    break;

  case 647:

/* Line 1455 of yacc.c  */
#line 5211 "sql_yacc.yy"
    { Lex->length= (yyvsp[(2) - (3)].lex_str).str; }
    break;

  case 648:

/* Line 1455 of yacc.c  */
#line 5212 "sql_yacc.yy"
    { Lex->length= (yyvsp[(2) - (3)].lex_str).str; }
    break;

  case 649:

/* Line 1455 of yacc.c  */
#line 5215 "sql_yacc.yy"
    { Lex->length=(char*) 0; /* use default length */ }
    break;

  case 650:

/* Line 1455 of yacc.c  */
#line 5216 "sql_yacc.yy"
    { }
    break;

  case 651:

/* Line 1455 of yacc.c  */
#line 5219 "sql_yacc.yy"
    {}
    break;

  case 652:

/* Line 1455 of yacc.c  */
#line 5220 "sql_yacc.yy"
    {}
    break;

  case 653:

/* Line 1455 of yacc.c  */
#line 5224 "sql_yacc.yy"
    {}
    break;

  case 654:

/* Line 1455 of yacc.c  */
#line 5225 "sql_yacc.yy"
    {}
    break;

  case 655:

/* Line 1455 of yacc.c  */
#line 5229 "sql_yacc.yy"
    {}
    break;

  case 657:

/* Line 1455 of yacc.c  */
#line 5234 "sql_yacc.yy"
    { Lex->type&= ~ NOT_NULL_FLAG; }
    break;

  case 658:

/* Line 1455 of yacc.c  */
#line 5235 "sql_yacc.yy"
    { Lex->type|= NOT_NULL_FLAG; }
    break;

  case 659:

/* Line 1455 of yacc.c  */
#line 5236 "sql_yacc.yy"
    { Lex->default_value=(yyvsp[(2) - (2)].item); }
    break;

  case 660:

/* Line 1455 of yacc.c  */
#line 5238 "sql_yacc.yy"
    {
            Item *item= new (YYTHD->mem_root) Item_func_now_local();
            if (item == NULL)
              MYSQL_YYABORT;
            Lex->on_update_value= item;
          }
    break;

  case 661:

/* Line 1455 of yacc.c  */
#line 5244 "sql_yacc.yy"
    { Lex->type|= AUTO_INCREMENT_FLAG | NOT_NULL_FLAG; }
    break;

  case 662:

/* Line 1455 of yacc.c  */
#line 5246 "sql_yacc.yy"
    { 
            LEX *lex=Lex;
            lex->type|= AUTO_INCREMENT_FLAG | NOT_NULL_FLAG | UNIQUE_FLAG;
            lex->alter_info.flags|= ALTER_ADD_INDEX;
          }
    break;

  case 663:

/* Line 1455 of yacc.c  */
#line 5252 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->type|= PRI_KEY_FLAG | NOT_NULL_FLAG;
            lex->alter_info.flags|= ALTER_ADD_INDEX;
          }
    break;

  case 664:

/* Line 1455 of yacc.c  */
#line 5258 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->type|= UNIQUE_FLAG; 
            lex->alter_info.flags|= ALTER_ADD_INDEX;
          }
    break;

  case 665:

/* Line 1455 of yacc.c  */
#line 5264 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->type|= UNIQUE_KEY_FLAG; 
            lex->alter_info.flags|= ALTER_ADD_INDEX; 
          }
    break;

  case 666:

/* Line 1455 of yacc.c  */
#line 5269 "sql_yacc.yy"
    { Lex->comment= (yyvsp[(2) - (2)].lex_str); }
    break;

  case 667:

/* Line 1455 of yacc.c  */
#line 5271 "sql_yacc.yy"
    {
            if (Lex->charset && !my_charset_same(Lex->charset,(yyvsp[(2) - (2)].charset)))
            {
              my_error(ER_COLLATION_CHARSET_MISMATCH, MYF(0),
                       (yyvsp[(2) - (2)].charset)->name,Lex->charset->csname);
              MYSQL_YYABORT;
            }
            else
            {
              Lex->charset=(yyvsp[(2) - (2)].charset);
            }
          }
    break;

  case 668:

/* Line 1455 of yacc.c  */
#line 5287 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_now_local();
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 669:

/* Line 1455 of yacc.c  */
#line 5293 "sql_yacc.yy"
    { (yyval.item)=(yyvsp[(1) - (1)].item); }
    break;

  case 670:

/* Line 1455 of yacc.c  */
#line 5297 "sql_yacc.yy"
    {}
    break;

  case 671:

/* Line 1455 of yacc.c  */
#line 5298 "sql_yacc.yy"
    {}
    break;

  case 672:

/* Line 1455 of yacc.c  */
#line 5303 "sql_yacc.yy"
    {
            if (!((yyval.charset)=get_charset_by_csname((yyvsp[(1) - (1)].lex_str).str,MY_CS_PRIMARY,MYF(0))))
            {
              my_error(ER_UNKNOWN_CHARACTER_SET, MYF(0), (yyvsp[(1) - (1)].lex_str).str);
              MYSQL_YYABORT;
            }
          }
    break;

  case 673:

/* Line 1455 of yacc.c  */
#line 5310 "sql_yacc.yy"
    { (yyval.charset)= &my_charset_bin; }
    break;

  case 674:

/* Line 1455 of yacc.c  */
#line 5314 "sql_yacc.yy"
    { (yyval.charset)=(yyvsp[(1) - (1)].charset);   }
    break;

  case 675:

/* Line 1455 of yacc.c  */
#line 5315 "sql_yacc.yy"
    { (yyval.charset)=NULL; }
    break;

  case 676:

/* Line 1455 of yacc.c  */
#line 5319 "sql_yacc.yy"
    { (yyval.charset)= NULL; }
    break;

  case 677:

/* Line 1455 of yacc.c  */
#line 5320 "sql_yacc.yy"
    { (yyval.charset)= (yyvsp[(2) - (2)].charset); }
    break;

  case 678:

/* Line 1455 of yacc.c  */
#line 5325 "sql_yacc.yy"
    {
            if (!((yyval.charset)=get_charset_by_csname((yyvsp[(1) - (1)].lex_str).str,MY_CS_PRIMARY,MYF(0))) &&
                !((yyval.charset)=get_old_charset_by_name((yyvsp[(1) - (1)].lex_str).str)))
            {
              my_error(ER_UNKNOWN_CHARACTER_SET, MYF(0), (yyvsp[(1) - (1)].lex_str).str);
              MYSQL_YYABORT;
            }
          }
    break;

  case 679:

/* Line 1455 of yacc.c  */
#line 5333 "sql_yacc.yy"
    { (yyval.charset)= &my_charset_bin; }
    break;

  case 680:

/* Line 1455 of yacc.c  */
#line 5337 "sql_yacc.yy"
    { (yyval.charset)=(yyvsp[(1) - (1)].charset);   }
    break;

  case 681:

/* Line 1455 of yacc.c  */
#line 5338 "sql_yacc.yy"
    { (yyval.charset)=NULL; }
    break;

  case 682:

/* Line 1455 of yacc.c  */
#line 5343 "sql_yacc.yy"
    {
            if (!((yyval.charset)=get_charset_by_name((yyvsp[(1) - (1)].lex_str).str,MYF(0))))
            {
              my_error(ER_UNKNOWN_COLLATION, MYF(0), (yyvsp[(1) - (1)].lex_str).str);
              MYSQL_YYABORT;
            }
          }
    break;

  case 683:

/* Line 1455 of yacc.c  */
#line 5353 "sql_yacc.yy"
    { (yyval.charset)=NULL; }
    break;

  case 684:

/* Line 1455 of yacc.c  */
#line 5354 "sql_yacc.yy"
    { (yyval.charset)=(yyvsp[(2) - (2)].charset); }
    break;

  case 685:

/* Line 1455 of yacc.c  */
#line 5358 "sql_yacc.yy"
    { (yyval.charset)=(yyvsp[(1) - (1)].charset); }
    break;

  case 686:

/* Line 1455 of yacc.c  */
#line 5359 "sql_yacc.yy"
    { (yyval.charset)=NULL; }
    break;

  case 687:

/* Line 1455 of yacc.c  */
#line 5363 "sql_yacc.yy"
    {}
    break;

  case 688:

/* Line 1455 of yacc.c  */
#line 5364 "sql_yacc.yy"
    {}
    break;

  case 689:

/* Line 1455 of yacc.c  */
#line 5368 "sql_yacc.yy"
    { Lex->charset=NULL; }
    break;

  case 690:

/* Line 1455 of yacc.c  */
#line 5369 "sql_yacc.yy"
    { Lex->charset=&my_charset_latin1; }
    break;

  case 691:

/* Line 1455 of yacc.c  */
#line 5370 "sql_yacc.yy"
    { Lex->charset=&my_charset_bin; }
    break;

  case 692:

/* Line 1455 of yacc.c  */
#line 5372 "sql_yacc.yy"
    {
            if (!(Lex->charset=get_charset_by_csname("ucs2",
                                                     MY_CS_PRIMARY,MYF(0))))
            {
              my_error(ER_UNKNOWN_CHARACTER_SET, MYF(0), "ucs2");
              MYSQL_YYABORT;
            }
          }
    break;

  case 693:

/* Line 1455 of yacc.c  */
#line 5380 "sql_yacc.yy"
    { Lex->charset=(yyvsp[(2) - (3)].charset); }
    break;

  case 694:

/* Line 1455 of yacc.c  */
#line 5381 "sql_yacc.yy"
    { Lex->type|= BINCMP_FLAG; }
    break;

  case 695:

/* Line 1455 of yacc.c  */
#line 5385 "sql_yacc.yy"
    { }
    break;

  case 696:

/* Line 1455 of yacc.c  */
#line 5386 "sql_yacc.yy"
    { Lex->type|= BINCMP_FLAG; }
    break;

  case 697:

/* Line 1455 of yacc.c  */
#line 5390 "sql_yacc.yy"
    { Lex->charset= NULL; }
    break;

  case 698:

/* Line 1455 of yacc.c  */
#line 5391 "sql_yacc.yy"
    { Lex->charset=&my_charset_latin1; }
    break;

  case 699:

/* Line 1455 of yacc.c  */
#line 5393 "sql_yacc.yy"
    {
            if (!(Lex->charset=get_charset_by_csname("ucs2",
                                                     MY_CS_PRIMARY,MYF(0))))
            {
              my_error(ER_UNKNOWN_CHARACTER_SET, MYF(0), "ucs2");
              MYSQL_YYABORT;
            }
          }
    break;

  case 700:

/* Line 1455 of yacc.c  */
#line 5401 "sql_yacc.yy"
    { Lex->charset=(yyvsp[(2) - (2)].charset); }
    break;

  case 703:

/* Line 1455 of yacc.c  */
#line 5411 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->fk_delete_opt= lex->fk_update_opt= lex->fk_match_option= 0;
            lex->ref_list.empty();
          }
    break;

  case 704:

/* Line 1455 of yacc.c  */
#line 5417 "sql_yacc.yy"
    {
            (yyval.table)=(yyvsp[(2) - (4)].table);
          }
    break;

  case 705:

/* Line 1455 of yacc.c  */
#line 5423 "sql_yacc.yy"
    {}
    break;

  case 706:

/* Line 1455 of yacc.c  */
#line 5424 "sql_yacc.yy"
    {}
    break;

  case 707:

/* Line 1455 of yacc.c  */
#line 5429 "sql_yacc.yy"
    {
            Key_part_spec *key= new Key_part_spec((yyvsp[(3) - (3)].lex_str).str);
            if (key == NULL)
              MYSQL_YYABORT;
            Lex->ref_list.push_back(key);
          }
    break;

  case 708:

/* Line 1455 of yacc.c  */
#line 5436 "sql_yacc.yy"
    {
            Key_part_spec *key= new Key_part_spec((yyvsp[(1) - (1)].lex_str).str);
            if (key == NULL)
              MYSQL_YYABORT;
            Lex->ref_list.push_back(key);
          }
    break;

  case 709:

/* Line 1455 of yacc.c  */
#line 5445 "sql_yacc.yy"
    {}
    break;

  case 710:

/* Line 1455 of yacc.c  */
#line 5446 "sql_yacc.yy"
    {}
    break;

  case 711:

/* Line 1455 of yacc.c  */
#line 5450 "sql_yacc.yy"
    {}
    break;

  case 712:

/* Line 1455 of yacc.c  */
#line 5451 "sql_yacc.yy"
    {}
    break;

  case 713:

/* Line 1455 of yacc.c  */
#line 5455 "sql_yacc.yy"
    { Lex->fk_delete_opt= (yyvsp[(3) - (3)].num); }
    break;

  case 714:

/* Line 1455 of yacc.c  */
#line 5456 "sql_yacc.yy"
    { Lex->fk_update_opt= (yyvsp[(3) - (3)].num); }
    break;

  case 715:

/* Line 1455 of yacc.c  */
#line 5457 "sql_yacc.yy"
    { Lex->fk_match_option= Foreign_key::FK_MATCH_FULL; }
    break;

  case 716:

/* Line 1455 of yacc.c  */
#line 5458 "sql_yacc.yy"
    { Lex->fk_match_option= Foreign_key::FK_MATCH_PARTIAL; }
    break;

  case 717:

/* Line 1455 of yacc.c  */
#line 5459 "sql_yacc.yy"
    { Lex->fk_match_option= Foreign_key::FK_MATCH_SIMPLE; }
    break;

  case 718:

/* Line 1455 of yacc.c  */
#line 5463 "sql_yacc.yy"
    { (yyval.num)= (int) Foreign_key::FK_OPTION_RESTRICT; }
    break;

  case 719:

/* Line 1455 of yacc.c  */
#line 5464 "sql_yacc.yy"
    { (yyval.num)= (int) Foreign_key::FK_OPTION_CASCADE; }
    break;

  case 720:

/* Line 1455 of yacc.c  */
#line 5465 "sql_yacc.yy"
    { (yyval.num)= (int) Foreign_key::FK_OPTION_SET_NULL; }
    break;

  case 721:

/* Line 1455 of yacc.c  */
#line 5466 "sql_yacc.yy"
    { (yyval.num)= (int) Foreign_key::FK_OPTION_NO_ACTION; }
    break;

  case 722:

/* Line 1455 of yacc.c  */
#line 5467 "sql_yacc.yy"
    { (yyval.num)= (int) Foreign_key::FK_OPTION_DEFAULT;  }
    break;

  case 723:

/* Line 1455 of yacc.c  */
#line 5471 "sql_yacc.yy"
    { (yyval.key_type)= Key::MULTIPLE; }
    break;

  case 724:

/* Line 1455 of yacc.c  */
#line 5475 "sql_yacc.yy"
    { (yyval.key_type)= Key::PRIMARY; }
    break;

  case 725:

/* Line 1455 of yacc.c  */
#line 5476 "sql_yacc.yy"
    { (yyval.key_type)= Key::UNIQUE; }
    break;

  case 726:

/* Line 1455 of yacc.c  */
#line 5480 "sql_yacc.yy"
    {}
    break;

  case 727:

/* Line 1455 of yacc.c  */
#line 5481 "sql_yacc.yy"
    {}
    break;

  case 728:

/* Line 1455 of yacc.c  */
#line 5485 "sql_yacc.yy"
    {}
    break;

  case 730:

/* Line 1455 of yacc.c  */
#line 5490 "sql_yacc.yy"
    {}
    break;

  case 731:

/* Line 1455 of yacc.c  */
#line 5491 "sql_yacc.yy"
    {}
    break;

  case 732:

/* Line 1455 of yacc.c  */
#line 5492 "sql_yacc.yy"
    {}
    break;

  case 733:

/* Line 1455 of yacc.c  */
#line 5496 "sql_yacc.yy"
    { (yyval.key_type)= Key::MULTIPLE; }
    break;

  case 734:

/* Line 1455 of yacc.c  */
#line 5497 "sql_yacc.yy"
    { (yyval.key_type)= Key::UNIQUE; }
    break;

  case 735:

/* Line 1455 of yacc.c  */
#line 5501 "sql_yacc.yy"
    { (yyval.key_type)= Key::FULLTEXT;}
    break;

  case 736:

/* Line 1455 of yacc.c  */
#line 5506 "sql_yacc.yy"
    {
#ifdef HAVE_SPATIAL
            (yyval.key_type)= Key::SPATIAL;
#else
            my_error(ER_FEATURE_DISABLED, MYF(0),
                     sym_group_geom.name, sym_group_geom.needed_define);
            MYSQL_YYABORT;
#endif
          }
    break;

  case 737:

/* Line 1455 of yacc.c  */
#line 5518 "sql_yacc.yy"
    {
            Lex->key_create_info= default_key_create_info;
          }
    break;

  case 740:

/* Line 1455 of yacc.c  */
#line 5535 "sql_yacc.yy"
    {}
    break;

  case 742:

/* Line 1455 of yacc.c  */
#line 5540 "sql_yacc.yy"
    {}
    break;

  case 744:

/* Line 1455 of yacc.c  */
#line 5545 "sql_yacc.yy"
    {}
    break;

  case 752:

/* Line 1455 of yacc.c  */
#line 5565 "sql_yacc.yy"
    { Lex->key_create_info.algorithm= (yyvsp[(2) - (2)].key_alg); }
    break;

  case 753:

/* Line 1455 of yacc.c  */
#line 5566 "sql_yacc.yy"
    { Lex->key_create_info.algorithm= (yyvsp[(2) - (2)].key_alg); }
    break;

  case 754:

/* Line 1455 of yacc.c  */
#line 5571 "sql_yacc.yy"
    { Lex->key_create_info.block_size= (yyvsp[(3) - (3)].ulong_num); }
    break;

  case 759:

/* Line 1455 of yacc.c  */
#line 5586 "sql_yacc.yy"
    {
            if (plugin_is_ready(&(yyvsp[(3) - (3)].lex_str), MYSQL_FTPARSER_PLUGIN))
              Lex->key_create_info.parser_name= (yyvsp[(3) - (3)].lex_str);
            else
            {
              my_error(ER_FUNCTION_NOT_DEFINED, MYF(0), (yyvsp[(3) - (3)].lex_str).str);
              MYSQL_YYABORT;
            }
          }
    break;

  case 760:

/* Line 1455 of yacc.c  */
#line 5598 "sql_yacc.yy"
    { (yyval.key_alg)= HA_KEY_ALG_BTREE; }
    break;

  case 761:

/* Line 1455 of yacc.c  */
#line 5599 "sql_yacc.yy"
    { (yyval.key_alg)= HA_KEY_ALG_RTREE; }
    break;

  case 762:

/* Line 1455 of yacc.c  */
#line 5600 "sql_yacc.yy"
    { (yyval.key_alg)= HA_KEY_ALG_HASH; }
    break;

  case 763:

/* Line 1455 of yacc.c  */
#line 5604 "sql_yacc.yy"
    { Lex->col_list.push_back((yyvsp[(3) - (4)].key_part)); }
    break;

  case 764:

/* Line 1455 of yacc.c  */
#line 5605 "sql_yacc.yy"
    { Lex->col_list.push_back((yyvsp[(1) - (2)].key_part)); }
    break;

  case 765:

/* Line 1455 of yacc.c  */
#line 5610 "sql_yacc.yy"
    {
            (yyval.key_part)= new Key_part_spec((yyvsp[(1) - (1)].lex_str).str);
            if ((yyval.key_part) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 766:

/* Line 1455 of yacc.c  */
#line 5616 "sql_yacc.yy"
    {
            int key_part_len= atoi((yyvsp[(3) - (4)].lex_str).str);
            if (!key_part_len)
            {
              my_error(ER_KEY_PART_0, MYF(0), (yyvsp[(1) - (4)].lex_str).str);
            }
            (yyval.key_part)= new Key_part_spec((yyvsp[(1) - (4)].lex_str).str,(uint) key_part_len);
            if ((yyval.key_part) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 767:

/* Line 1455 of yacc.c  */
#line 5629 "sql_yacc.yy"
    { (yyval.simple_string)=(char*) 0; /* Default length */ }
    break;

  case 768:

/* Line 1455 of yacc.c  */
#line 5630 "sql_yacc.yy"
    { (yyval.simple_string)=(yyvsp[(1) - (1)].lex_str).str; }
    break;

  case 769:

/* Line 1455 of yacc.c  */
#line 5634 "sql_yacc.yy"
    { (yyval.lex_str)= null_lex_str; }
    break;

  case 770:

/* Line 1455 of yacc.c  */
#line 5635 "sql_yacc.yy"
    { (yyval.lex_str)= (yyvsp[(2) - (2)].lex_str); }
    break;

  case 771:

/* Line 1455 of yacc.c  */
#line 5639 "sql_yacc.yy"
    { Lex->interval_list.push_back((yyvsp[(1) - (1)].string)); }
    break;

  case 772:

/* Line 1455 of yacc.c  */
#line 5640 "sql_yacc.yy"
    { Lex->interval_list.push_back((yyvsp[(3) - (3)].string)); }
    break;

  case 773:

/* Line 1455 of yacc.c  */
#line 5648 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            lex->name.str= 0;
            lex->name.length= 0;
            lex->sql_command= SQLCOM_ALTER_TABLE;
            lex->duplicates= DUP_ERROR; 
            if (!lex->select_lex.add_table_to_list(thd, (yyvsp[(4) - (4)].table), NULL,
                                                   TL_OPTION_UPDATING))
              MYSQL_YYABORT;
            lex->alter_info.reset();
            lex->col_list.empty();
            lex->select_lex.init_order();
            lex->select_lex.db= (lex->select_lex.table_list.first)->db;
            bzero((char*) &lex->create_info,sizeof(lex->create_info));
            lex->create_info.db_type= 0;
            lex->create_info.default_table_charset= NULL;
            lex->create_info.row_type= ROW_TYPE_NOT_USED;
            lex->alter_info.reset();
            lex->no_write_to_binlog= 0;
            lex->create_info.storage_media= HA_SM_DEFAULT;
          }
    break;

  case 774:

/* Line 1455 of yacc.c  */
#line 5671 "sql_yacc.yy"
    {}
    break;

  case 775:

/* Line 1455 of yacc.c  */
#line 5673 "sql_yacc.yy"
    {
            Lex->create_info.default_table_charset= NULL;
            Lex->create_info.used_fields= 0;
          }
    break;

  case 776:

/* Line 1455 of yacc.c  */
#line 5678 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command=SQLCOM_ALTER_DB;
            lex->name= (yyvsp[(3) - (5)].lex_str);
            if (lex->name.str == NULL &&
                lex->copy_db_to(&lex->name.str, &lex->name.length))
              MYSQL_YYABORT;
          }
    break;

  case 777:

/* Line 1455 of yacc.c  */
#line 5687 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (lex->sphead)
            {
              my_error(ER_SP_NO_DROP_SP, MYF(0), "DATABASE");
              MYSQL_YYABORT;
            }
            lex->sql_command= SQLCOM_ALTER_DB_UPGRADE;
            lex->name= (yyvsp[(3) - (7)].lex_str);
          }
    break;

  case 778:

/* Line 1455 of yacc.c  */
#line 5698 "sql_yacc.yy"
    {
            LEX *lex= Lex;

            if (lex->sphead)
            {
              my_error(ER_SP_NO_DROP_SP, MYF(0), "PROCEDURE");
              MYSQL_YYABORT;
            }
            bzero((char *)&lex->sp_chistics, sizeof(st_sp_chistics));
          }
    break;

  case 779:

/* Line 1455 of yacc.c  */
#line 5709 "sql_yacc.yy"
    {
            LEX *lex=Lex;

            lex->sql_command= SQLCOM_ALTER_PROCEDURE;
            lex->spname= (yyvsp[(3) - (5)].spname);
          }
    break;

  case 780:

/* Line 1455 of yacc.c  */
#line 5716 "sql_yacc.yy"
    {
            LEX *lex= Lex;

            if (lex->sphead)
            {
              my_error(ER_SP_NO_DROP_SP, MYF(0), "FUNCTION");
              MYSQL_YYABORT;
            }
            bzero((char *)&lex->sp_chistics, sizeof(st_sp_chistics));
          }
    break;

  case 781:

/* Line 1455 of yacc.c  */
#line 5727 "sql_yacc.yy"
    {
            LEX *lex=Lex;

            lex->sql_command= SQLCOM_ALTER_FUNCTION;
            lex->spname= (yyvsp[(3) - (5)].spname);
          }
    break;

  case 782:

/* Line 1455 of yacc.c  */
#line 5734 "sql_yacc.yy"
    {
            LEX *lex= Lex;

            if (lex->sphead)
            {
              my_error(ER_SP_BADSTATEMENT, MYF(0), "ALTER VIEW");
              MYSQL_YYABORT;
            }
            lex->create_view_mode= VIEW_ALTER;
          }
    break;

  case 783:

/* Line 1455 of yacc.c  */
#line 5745 "sql_yacc.yy"
    {}
    break;

  case 784:

/* Line 1455 of yacc.c  */
#line 5752 "sql_yacc.yy"
    {
            LEX *lex= Lex;

            if (lex->sphead)
            {
              my_error(ER_SP_BADSTATEMENT, MYF(0), "ALTER VIEW");
              MYSQL_YYABORT;
            }
            lex->create_view_algorithm= VIEW_ALGORITHM_UNDEFINED;
            lex->create_view_mode= VIEW_ALTER;
          }
    break;

  case 785:

/* Line 1455 of yacc.c  */
#line 5764 "sql_yacc.yy"
    {}
    break;

  case 786:

/* Line 1455 of yacc.c  */
#line 5766 "sql_yacc.yy"
    {
            /* 
              It is safe to use Lex->spname because
              ALTER EVENT xxx RENATE TO yyy DO ALTER EVENT RENAME TO
              is not allowed. Lex->spname is used in the case of RENAME TO
              If it had to be supported spname had to be added to
              Event_parse_data.
            */

            if (!(Lex->event_parse_data= Event_parse_data::new_instance(YYTHD)))
              MYSQL_YYABORT;
            Lex->event_parse_data->identifier= (yyvsp[(4) - (4)].spname);

            Lex->sql_command= SQLCOM_ALTER_EVENT;
          }
    break;

  case 787:

/* Line 1455 of yacc.c  */
#line 5786 "sql_yacc.yy"
    {
            if (!((yyvsp[(6) - (10)].num) || (yyvsp[(7) - (10)].num) || (yyvsp[(8) - (10)].num) || (yyvsp[(9) - (10)].num) || (yyvsp[(10) - (10)].num)))
            {
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
            /*
              sql_command is set here because some rules in ev_sql_stmt
              can overwrite it
            */
            Lex->sql_command= SQLCOM_ALTER_EVENT;
          }
    break;

  case 788:

/* Line 1455 of yacc.c  */
#line 5799 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->ts_cmd_type= ALTER_TABLESPACE;
          }
    break;

  case 789:

/* Line 1455 of yacc.c  */
#line 5804 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->ts_cmd_type= ALTER_LOGFILE_GROUP;
          }
    break;

  case 790:

/* Line 1455 of yacc.c  */
#line 5809 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->ts_cmd_type= CHANGE_FILE_TABLESPACE;
          }
    break;

  case 791:

/* Line 1455 of yacc.c  */
#line 5814 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->ts_cmd_type= ALTER_ACCESS_MODE_TABLESPACE;
          }
    break;

  case 792:

/* Line 1455 of yacc.c  */
#line 5819 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_ALTER_SERVER;
            lex->server_options.server_name= (yyvsp[(3) - (7)].lex_str).str;
            lex->server_options.server_name_length= (yyvsp[(3) - (7)].lex_str).length;
          }
    break;

  case 793:

/* Line 1455 of yacc.c  */
#line 5828 "sql_yacc.yy"
    { (yyval.num)= 0;}
    break;

  case 794:

/* Line 1455 of yacc.c  */
#line 5829 "sql_yacc.yy"
    { (yyval.num)= 1; }
    break;

  case 795:

/* Line 1455 of yacc.c  */
#line 5830 "sql_yacc.yy"
    { (yyval.num)= 1; }
    break;

  case 796:

/* Line 1455 of yacc.c  */
#line 5831 "sql_yacc.yy"
    { (yyval.num)= 1; }
    break;

  case 797:

/* Line 1455 of yacc.c  */
#line 5835 "sql_yacc.yy"
    { (yyval.num)= 0;}
    break;

  case 798:

/* Line 1455 of yacc.c  */
#line 5837 "sql_yacc.yy"
    {
            /*
              Use lex's spname to hold the new name.
              The original name is in the Event_parse_data object
            */
            Lex->spname= (yyvsp[(3) - (3)].spname); 
            (yyval.num)= 1;
          }
    break;

  case 799:

/* Line 1455 of yacc.c  */
#line 5848 "sql_yacc.yy"
    { (yyval.num)= 0;}
    break;

  case 800:

/* Line 1455 of yacc.c  */
#line 5849 "sql_yacc.yy"
    { (yyval.num)= 1; }
    break;

  case 801:

/* Line 1455 of yacc.c  */
#line 5853 "sql_yacc.yy"
    { (yyval.lex_str).str= 0; (yyval.lex_str).length= 0; }
    break;

  case 802:

/* Line 1455 of yacc.c  */
#line 5854 "sql_yacc.yy"
    { (yyval.lex_str)= (yyvsp[(1) - (1)].lex_str); }
    break;

  case 804:

/* Line 1455 of yacc.c  */
#line 5859 "sql_yacc.yy"
    { Lex->alter_info.tablespace_op= DISCARD_TABLESPACE; }
    break;

  case 805:

/* Line 1455 of yacc.c  */
#line 5860 "sql_yacc.yy"
    { Lex->alter_info.tablespace_op= IMPORT_TABLESPACE; }
    break;

  case 811:

/* Line 1455 of yacc.c  */
#line 5877 "sql_yacc.yy"
    {
            Lex->alter_info.flags|= ALTER_DROP_PARTITION;
          }
    break;

  case 812:

/* Line 1455 of yacc.c  */
#line 5882 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_info.flags|= ALTER_REBUILD_PARTITION;
            lex->no_write_to_binlog= (yyvsp[(3) - (4)].num);
          }
    break;

  case 813:

/* Line 1455 of yacc.c  */
#line 5889 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command = SQLCOM_OPTIMIZE;
            lex->alter_info.flags|= ALTER_ADMIN_PARTITION;
            lex->no_write_to_binlog= (yyvsp[(3) - (4)].num);
            lex->check_opt.init();
          }
    break;

  case 815:

/* Line 1455 of yacc.c  */
#line 5899 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command = SQLCOM_ANALYZE;
            lex->alter_info.flags|= ALTER_ADMIN_PARTITION;
            lex->no_write_to_binlog= (yyvsp[(3) - (4)].num);
            lex->check_opt.init();
          }
    break;

  case 816:

/* Line 1455 of yacc.c  */
#line 5907 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command = SQLCOM_CHECK;
            lex->alter_info.flags|= ALTER_ADMIN_PARTITION;
            lex->check_opt.init();
          }
    break;

  case 818:

/* Line 1455 of yacc.c  */
#line 5916 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command = SQLCOM_REPAIR;
            lex->alter_info.flags|= ALTER_ADMIN_PARTITION;
            lex->no_write_to_binlog= (yyvsp[(3) - (4)].num);
            lex->check_opt.init();
          }
    break;

  case 820:

/* Line 1455 of yacc.c  */
#line 5925 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_info.flags|= ALTER_COALESCE_PARTITION;
            lex->no_write_to_binlog= (yyvsp[(3) - (4)].num);
            lex->alter_info.no_parts= (yyvsp[(4) - (4)].ulong_num);
          }
    break;

  case 822:

/* Line 1455 of yacc.c  */
#line 5936 "sql_yacc.yy"
    {
            Lex->alter_info.flags|= ALTER_REMOVE_PARTITIONING;
          }
    break;

  case 823:

/* Line 1455 of yacc.c  */
#line 5943 "sql_yacc.yy"
    {
            Lex->alter_info.flags|= ALTER_ALL_PARTITION;
          }
    break;

  case 825:

/* Line 1455 of yacc.c  */
#line 5951 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->part_info= new partition_info();
            if (!lex->part_info)
            {
              mem_alloc_error(sizeof(partition_info));
              MYSQL_YYABORT;
            }
            lex->alter_info.flags|= ALTER_ADD_PARTITION;
            lex->no_write_to_binlog= (yyvsp[(3) - (3)].num);
          }
    break;

  case 826:

/* Line 1455 of yacc.c  */
#line 5963 "sql_yacc.yy"
    {}
    break;

  case 828:

/* Line 1455 of yacc.c  */
#line 5969 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->part_info->no_parts= lex->part_info->partitions.elements;
          }
    break;

  case 829:

/* Line 1455 of yacc.c  */
#line 5974 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->part_info->no_parts= (yyvsp[(2) - (2)].ulong_num);
          }
    break;

  case 830:

/* Line 1455 of yacc.c  */
#line 5982 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->part_info= new partition_info();
            if (!lex->part_info)
            {
              mem_alloc_error(sizeof(partition_info));
              MYSQL_YYABORT;
            }
            lex->no_write_to_binlog= (yyvsp[(3) - (3)].num);
          }
    break;

  case 832:

/* Line 1455 of yacc.c  */
#line 5997 "sql_yacc.yy"
    {
            Lex->alter_info.flags|= ALTER_TABLE_REORG;
          }
    break;

  case 833:

/* Line 1455 of yacc.c  */
#line 6001 "sql_yacc.yy"
    {
            Lex->alter_info.flags|= ALTER_REORGANIZE_PARTITION;
          }
    break;

  case 834:

/* Line 1455 of yacc.c  */
#line 6005 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->part_info->no_parts= lex->part_info->partitions.elements;
          }
    break;

  case 835:

/* Line 1455 of yacc.c  */
#line 6012 "sql_yacc.yy"
    {}
    break;

  case 836:

/* Line 1455 of yacc.c  */
#line 6013 "sql_yacc.yy"
    {}
    break;

  case 837:

/* Line 1455 of yacc.c  */
#line 6018 "sql_yacc.yy"
    {
            if (Lex->alter_info.partition_names.push_back((yyvsp[(1) - (1)].lex_str).str))
            {
              mem_alloc_error(1);
              MYSQL_YYABORT;
            }
          }
    break;

  case 840:

/* Line 1455 of yacc.c  */
#line 6038 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->change=0;
            lex->alter_info.flags|= ALTER_ADD_COLUMN;
          }
    break;

  case 841:

/* Line 1455 of yacc.c  */
#line 6046 "sql_yacc.yy"
    { }
    break;

  case 842:

/* Line 1455 of yacc.c  */
#line 6048 "sql_yacc.yy"
    {
            Lex->alter_info.flags|= ALTER_ADD_INDEX;
          }
    break;

  case 843:

/* Line 1455 of yacc.c  */
#line 6052 "sql_yacc.yy"
    {
            Lex->alter_info.flags|= ALTER_ADD_COLUMN | ALTER_ADD_INDEX;
          }
    break;

  case 844:

/* Line 1455 of yacc.c  */
#line 6056 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->change= (yyvsp[(3) - (3)].lex_str).str;
            lex->alter_info.flags|= ALTER_CHANGE_COLUMN;
          }
    break;

  case 846:

/* Line 1455 of yacc.c  */
#line 6063 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->length=lex->dec=0; lex->type=0;
            lex->default_value= lex->on_update_value= 0;
            lex->comment=null_lex_str;
            lex->charset= NULL;
            lex->alter_info.flags|= ALTER_CHANGE_COLUMN;
          }
    break;

  case 847:

/* Line 1455 of yacc.c  */
#line 6072 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            if (add_field_to_list(lex->thd,&(yyvsp[(3) - (6)].lex_str),
                                  (enum enum_field_types) (yyvsp[(5) - (6)].num),
                                  lex->length,lex->dec,lex->type,
                                  lex->default_value, lex->on_update_value,
                                  &lex->comment,
                                  (yyvsp[(3) - (6)].lex_str).str, &lex->interval_list, lex->charset,
                                  lex->uint_geom_type))
              MYSQL_YYABORT;
          }
    break;

  case 849:

/* Line 1455 of yacc.c  */
#line 6085 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            Alter_drop *ad= new Alter_drop(Alter_drop::COLUMN, (yyvsp[(3) - (4)].lex_str).str);
            if (ad == NULL)
              MYSQL_YYABORT;
            lex->alter_info.drop_list.push_back(ad);
            lex->alter_info.flags|= ALTER_DROP_COLUMN;
          }
    break;

  case 850:

/* Line 1455 of yacc.c  */
#line 6094 "sql_yacc.yy"
    {
            Lex->alter_info.flags|= ALTER_DROP_INDEX | ALTER_FOREIGN_KEY;
          }
    break;

  case 851:

/* Line 1455 of yacc.c  */
#line 6098 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            Alter_drop *ad= new Alter_drop(Alter_drop::KEY, primary_key_name);
            if (ad == NULL)
              MYSQL_YYABORT;
            lex->alter_info.drop_list.push_back(ad);
            lex->alter_info.flags|= ALTER_DROP_INDEX;
          }
    break;

  case 852:

/* Line 1455 of yacc.c  */
#line 6107 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            Alter_drop *ad= new Alter_drop(Alter_drop::KEY, (yyvsp[(3) - (3)].lex_str).str);
            if (ad == NULL)
              MYSQL_YYABORT;
            lex->alter_info.drop_list.push_back(ad);
            lex->alter_info.flags|= ALTER_DROP_INDEX;
          }
    break;

  case 853:

/* Line 1455 of yacc.c  */
#line 6116 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->alter_info.keys_onoff= DISABLE;
            lex->alter_info.flags|= ALTER_KEYS_ONOFF;
          }
    break;

  case 854:

/* Line 1455 of yacc.c  */
#line 6122 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->alter_info.keys_onoff= ENABLE;
            lex->alter_info.flags|= ALTER_KEYS_ONOFF;
          }
    break;

  case 855:

/* Line 1455 of yacc.c  */
#line 6128 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            Alter_column *ac= new Alter_column((yyvsp[(3) - (6)].lex_str).str,(yyvsp[(6) - (6)].item));
            if (ac == NULL)
              MYSQL_YYABORT;
            lex->alter_info.alter_list.push_back(ac);
            lex->alter_info.flags|= ALTER_CHANGE_COLUMN_DEFAULT;
          }
    break;

  case 856:

/* Line 1455 of yacc.c  */
#line 6137 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            Alter_column *ac= new Alter_column((yyvsp[(3) - (5)].lex_str).str, (Item*) 0);
            if (ac == NULL)
              MYSQL_YYABORT;
            lex->alter_info.alter_list.push_back(ac);
            lex->alter_info.flags|= ALTER_CHANGE_COLUMN_DEFAULT;
          }
    break;

  case 857:

/* Line 1455 of yacc.c  */
#line 6146 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            size_t dummy;
            lex->select_lex.db=(yyvsp[(3) - (3)].table)->db.str;
            if (lex->select_lex.db == NULL &&
                lex->copy_db_to(&lex->select_lex.db, &dummy))
            {
              MYSQL_YYABORT;
            }
            if (check_table_name((yyvsp[(3) - (3)].table)->table.str,(yyvsp[(3) - (3)].table)->table.length, FALSE) ||
                ((yyvsp[(3) - (3)].table)->db.str && check_db_name(&(yyvsp[(3) - (3)].table)->db)))
            {
              my_error(ER_WRONG_TABLE_NAME, MYF(0), (yyvsp[(3) - (3)].table)->table.str);
              MYSQL_YYABORT;
            }
            lex->name= (yyvsp[(3) - (3)].table)->table;
            lex->alter_info.flags|= ALTER_RENAME;
          }
    break;

  case 858:

/* Line 1455 of yacc.c  */
#line 6165 "sql_yacc.yy"
    {
            if (!(yyvsp[(4) - (5)].charset))
            {
              THD *thd= YYTHD;
              (yyvsp[(4) - (5)].charset)= thd->variables.collation_database;
            }
            (yyvsp[(5) - (5)].charset)= (yyvsp[(5) - (5)].charset) ? (yyvsp[(5) - (5)].charset) : (yyvsp[(4) - (5)].charset);
            if (!my_charset_same((yyvsp[(4) - (5)].charset),(yyvsp[(5) - (5)].charset)))
            {
              my_error(ER_COLLATION_CHARSET_MISMATCH, MYF(0),
                       (yyvsp[(5) - (5)].charset)->name, (yyvsp[(4) - (5)].charset)->csname);
              MYSQL_YYABORT;
            }
            LEX *lex= Lex;
            lex->create_info.table_charset=
            lex->create_info.default_table_charset= (yyvsp[(5) - (5)].charset);
            lex->create_info.used_fields|= (HA_CREATE_USED_CHARSET |
              HA_CREATE_USED_DEFAULT_CHARSET);
            lex->alter_info.flags|= ALTER_CONVERT;
          }
    break;

  case 859:

/* Line 1455 of yacc.c  */
#line 6186 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->alter_info.flags|= ALTER_OPTIONS;
          }
    break;

  case 860:

/* Line 1455 of yacc.c  */
#line 6191 "sql_yacc.yy"
    {
            Lex->alter_info.flags|= ALTER_FORCE;
          }
    break;

  case 861:

/* Line 1455 of yacc.c  */
#line 6195 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->alter_info.flags|= ALTER_ORDER;
          }
    break;

  case 862:

/* Line 1455 of yacc.c  */
#line 6202 "sql_yacc.yy"
    {}
    break;

  case 863:

/* Line 1455 of yacc.c  */
#line 6203 "sql_yacc.yy"
    {}
    break;

  case 864:

/* Line 1455 of yacc.c  */
#line 6207 "sql_yacc.yy"
    { Lex->ignore= 0;}
    break;

  case 865:

/* Line 1455 of yacc.c  */
#line 6208 "sql_yacc.yy"
    { Lex->ignore= 1;}
    break;

  case 866:

/* Line 1455 of yacc.c  */
#line 6212 "sql_yacc.yy"
    { Lex->drop_mode= DROP_DEFAULT; }
    break;

  case 867:

/* Line 1455 of yacc.c  */
#line 6213 "sql_yacc.yy"
    { Lex->drop_mode= DROP_RESTRICT; }
    break;

  case 868:

/* Line 1455 of yacc.c  */
#line 6214 "sql_yacc.yy"
    { Lex->drop_mode= DROP_CASCADE; }
    break;

  case 869:

/* Line 1455 of yacc.c  */
#line 6218 "sql_yacc.yy"
    {}
    break;

  case 870:

/* Line 1455 of yacc.c  */
#line 6219 "sql_yacc.yy"
    { store_position_for_column((yyvsp[(2) - (2)].lex_str).str); }
    break;

  case 871:

/* Line 1455 of yacc.c  */
#line 6220 "sql_yacc.yy"
    { store_position_for_column(first_keyword); }
    break;

  case 872:

/* Line 1455 of yacc.c  */
#line 6224 "sql_yacc.yy"
    {}
    break;

  case 873:

/* Line 1455 of yacc.c  */
#line 6225 "sql_yacc.yy"
    {}
    break;

  case 874:

/* Line 1455 of yacc.c  */
#line 6226 "sql_yacc.yy"
    {}
    break;

  case 875:

/* Line 1455 of yacc.c  */
#line 6227 "sql_yacc.yy"
    {}
    break;

  case 876:

/* Line 1455 of yacc.c  */
#line 6236 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command = SQLCOM_SLAVE_START;
            lex->type = 0;
            /* We'll use mi structure for UNTIL options */
            bzero((char*) &lex->mi, sizeof(lex->mi));
            /* If you change this code don't forget to update SLAVE START too */
          }
    break;

  case 877:

/* Line 1455 of yacc.c  */
#line 6245 "sql_yacc.yy"
    {}
    break;

  case 878:

/* Line 1455 of yacc.c  */
#line 6247 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command = SQLCOM_SLAVE_STOP;
            lex->type = 0;
            /* If you change this code don't forget to update SLAVE STOP too */
          }
    break;

  case 879:

/* Line 1455 of yacc.c  */
#line 6254 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command = SQLCOM_SLAVE_START;
            lex->type = 0;
            /* We'll use mi structure for UNTIL options */
            bzero((char*) &lex->mi, sizeof(lex->mi));
          }
    break;

  case 880:

/* Line 1455 of yacc.c  */
#line 6262 "sql_yacc.yy"
    {}
    break;

  case 881:

/* Line 1455 of yacc.c  */
#line 6264 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command = SQLCOM_SLAVE_STOP;
            lex->type = 0;
          }
    break;

  case 882:

/* Line 1455 of yacc.c  */
#line 6273 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_BEGIN;
            lex->start_transaction_opt= (yyvsp[(3) - (3)].num);
          }
    break;

  case 883:

/* Line 1455 of yacc.c  */
#line 6281 "sql_yacc.yy"
    { (yyval.num) = 0; }
    break;

  case 884:

/* Line 1455 of yacc.c  */
#line 6283 "sql_yacc.yy"
    {
            (yyval.num)= MYSQL_START_TRANS_OPT_WITH_CONS_SNAPSHOT;
          }
    break;

  case 885:

/* Line 1455 of yacc.c  */
#line 6289 "sql_yacc.yy"
    { Lex->slave_thd_opt= 0; }
    break;

  case 886:

/* Line 1455 of yacc.c  */
#line 6291 "sql_yacc.yy"
    {}
    break;

  case 889:

/* Line 1455 of yacc.c  */
#line 6300 "sql_yacc.yy"
    {}
    break;

  case 890:

/* Line 1455 of yacc.c  */
#line 6301 "sql_yacc.yy"
    { Lex->slave_thd_opt|=SLAVE_SQL; }
    break;

  case 891:

/* Line 1455 of yacc.c  */
#line 6302 "sql_yacc.yy"
    { Lex->slave_thd_opt|=SLAVE_IO; }
    break;

  case 892:

/* Line 1455 of yacc.c  */
#line 6306 "sql_yacc.yy"
    {}
    break;

  case 893:

/* Line 1455 of yacc.c  */
#line 6308 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            if (((lex->mi.log_file_name || lex->mi.pos) &&
                (lex->mi.relay_log_name || lex->mi.relay_log_pos)) ||
                !((lex->mi.log_file_name && lex->mi.pos) ||
                  (lex->mi.relay_log_name && lex->mi.relay_log_pos)))
            {
               my_message(ER_BAD_SLAVE_UNTIL_COND,
                          ER(ER_BAD_SLAVE_UNTIL_COND), MYF(0));
               MYSQL_YYABORT;
            }
          }
    break;

  case 896:

/* Line 1455 of yacc.c  */
#line 6329 "sql_yacc.yy"
    {
            Lex->sql_command = SQLCOM_RESTORE_TABLE;
          }
    break;

  case 897:

/* Line 1455 of yacc.c  */
#line 6333 "sql_yacc.yy"
    {
            Lex->backup_dir = (yyvsp[(6) - (6)].lex_str).str;
          }
    break;

  case 898:

/* Line 1455 of yacc.c  */
#line 6340 "sql_yacc.yy"
    {
            Lex->sql_command = SQLCOM_BACKUP_TABLE;
          }
    break;

  case 899:

/* Line 1455 of yacc.c  */
#line 6344 "sql_yacc.yy"
    {
            Lex->backup_dir = (yyvsp[(6) - (6)].lex_str).str;
          }
    break;

  case 900:

/* Line 1455 of yacc.c  */
#line 6351 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command = SQLCOM_CHECKSUM;
          }
    break;

  case 901:

/* Line 1455 of yacc.c  */
#line 6356 "sql_yacc.yy"
    {}
    break;

  case 902:

/* Line 1455 of yacc.c  */
#line 6360 "sql_yacc.yy"
    { Lex->check_opt.flags= 0; }
    break;

  case 903:

/* Line 1455 of yacc.c  */
#line 6361 "sql_yacc.yy"
    { Lex->check_opt.flags= T_QUICK; }
    break;

  case 904:

/* Line 1455 of yacc.c  */
#line 6362 "sql_yacc.yy"
    { Lex->check_opt.flags= T_EXTEND; }
    break;

  case 905:

/* Line 1455 of yacc.c  */
#line 6367 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command = SQLCOM_REPAIR;
            lex->no_write_to_binlog= (yyvsp[(2) - (3)].num);
            lex->check_opt.init();
            lex->alter_info.reset();
          }
    break;

  case 906:

/* Line 1455 of yacc.c  */
#line 6375 "sql_yacc.yy"
    {}
    break;

  case 907:

/* Line 1455 of yacc.c  */
#line 6379 "sql_yacc.yy"
    { Lex->check_opt.flags = T_MEDIUM; }
    break;

  case 908:

/* Line 1455 of yacc.c  */
#line 6380 "sql_yacc.yy"
    {}
    break;

  case 909:

/* Line 1455 of yacc.c  */
#line 6384 "sql_yacc.yy"
    {}
    break;

  case 910:

/* Line 1455 of yacc.c  */
#line 6385 "sql_yacc.yy"
    {}
    break;

  case 911:

/* Line 1455 of yacc.c  */
#line 6389 "sql_yacc.yy"
    { Lex->check_opt.flags|= T_QUICK; }
    break;

  case 912:

/* Line 1455 of yacc.c  */
#line 6390 "sql_yacc.yy"
    { Lex->check_opt.flags|= T_EXTEND; }
    break;

  case 913:

/* Line 1455 of yacc.c  */
#line 6391 "sql_yacc.yy"
    { Lex->check_opt.sql_flags|= TT_USEFRM; }
    break;

  case 914:

/* Line 1455 of yacc.c  */
#line 6396 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command = SQLCOM_ANALYZE;
            lex->no_write_to_binlog= (yyvsp[(2) - (3)].num);
            lex->check_opt.init();
            lex->alter_info.reset();
          }
    break;

  case 915:

/* Line 1455 of yacc.c  */
#line 6404 "sql_yacc.yy"
    {}
    break;

  case 916:

/* Line 1455 of yacc.c  */
#line 6409 "sql_yacc.yy"
    {
            Lex->sql_command = SQLCOM_BINLOG_BASE64_EVENT;
            Lex->comment= (yyvsp[(2) - (2)].lex_str);
          }
    break;

  case 917:

/* Line 1455 of yacc.c  */
#line 6417 "sql_yacc.yy"
    {
            LEX *lex=Lex;

            if (lex->sphead)
            {
              my_error(ER_SP_BADSTATEMENT, MYF(0), "CHECK");
              MYSQL_YYABORT;
            }
            lex->sql_command = SQLCOM_CHECK;
            lex->check_opt.init();
            lex->alter_info.reset();
          }
    break;

  case 918:

/* Line 1455 of yacc.c  */
#line 6430 "sql_yacc.yy"
    {}
    break;

  case 919:

/* Line 1455 of yacc.c  */
#line 6434 "sql_yacc.yy"
    { Lex->check_opt.flags = T_MEDIUM; }
    break;

  case 920:

/* Line 1455 of yacc.c  */
#line 6435 "sql_yacc.yy"
    {}
    break;

  case 921:

/* Line 1455 of yacc.c  */
#line 6439 "sql_yacc.yy"
    {}
    break;

  case 922:

/* Line 1455 of yacc.c  */
#line 6440 "sql_yacc.yy"
    {}
    break;

  case 923:

/* Line 1455 of yacc.c  */
#line 6444 "sql_yacc.yy"
    { Lex->check_opt.flags|= T_QUICK; }
    break;

  case 924:

/* Line 1455 of yacc.c  */
#line 6445 "sql_yacc.yy"
    { Lex->check_opt.flags|= T_FAST; }
    break;

  case 925:

/* Line 1455 of yacc.c  */
#line 6446 "sql_yacc.yy"
    { Lex->check_opt.flags|= T_MEDIUM; }
    break;

  case 926:

/* Line 1455 of yacc.c  */
#line 6447 "sql_yacc.yy"
    { Lex->check_opt.flags|= T_EXTEND; }
    break;

  case 927:

/* Line 1455 of yacc.c  */
#line 6448 "sql_yacc.yy"
    { Lex->check_opt.flags|= T_CHECK_ONLY_CHANGED; }
    break;

  case 928:

/* Line 1455 of yacc.c  */
#line 6449 "sql_yacc.yy"
    { Lex->check_opt.sql_flags|= TT_FOR_UPGRADE; }
    break;

  case 929:

/* Line 1455 of yacc.c  */
#line 6454 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command = SQLCOM_OPTIMIZE;
            lex->no_write_to_binlog= (yyvsp[(2) - (3)].num);
            lex->check_opt.init();
            lex->alter_info.reset();
          }
    break;

  case 930:

/* Line 1455 of yacc.c  */
#line 6462 "sql_yacc.yy"
    {}
    break;

  case 931:

/* Line 1455 of yacc.c  */
#line 6466 "sql_yacc.yy"
    { (yyval.num)= 0; }
    break;

  case 932:

/* Line 1455 of yacc.c  */
#line 6467 "sql_yacc.yy"
    { (yyval.num)= 1; }
    break;

  case 933:

/* Line 1455 of yacc.c  */
#line 6468 "sql_yacc.yy"
    { (yyval.num)= 1; }
    break;

  case 934:

/* Line 1455 of yacc.c  */
#line 6473 "sql_yacc.yy"
    {
            Lex->sql_command= SQLCOM_RENAME_TABLE;
          }
    break;

  case 935:

/* Line 1455 of yacc.c  */
#line 6477 "sql_yacc.yy"
    {}
    break;

  case 936:

/* Line 1455 of yacc.c  */
#line 6479 "sql_yacc.yy"
    {
            Lex->sql_command = SQLCOM_RENAME_USER;
          }
    break;

  case 937:

/* Line 1455 of yacc.c  */
#line 6486 "sql_yacc.yy"
    {
            if (Lex->users_list.push_back((yyvsp[(1) - (3)].lex_user)) || Lex->users_list.push_back((yyvsp[(3) - (3)].lex_user)))
              MYSQL_YYABORT;
          }
    break;

  case 938:

/* Line 1455 of yacc.c  */
#line 6491 "sql_yacc.yy"
    {
            if (Lex->users_list.push_back((yyvsp[(3) - (5)].lex_user)) || Lex->users_list.push_back((yyvsp[(5) - (5)].lex_user)))
              MYSQL_YYABORT;
          }
    break;

  case 941:

/* Line 1455 of yacc.c  */
#line 6504 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            SELECT_LEX *sl= lex->current_select;
            if (!sl->add_table_to_list(lex->thd, (yyvsp[(1) - (3)].table),NULL,TL_OPTION_UPDATING,
                                       TL_IGNORE) ||
                !sl->add_table_to_list(lex->thd, (yyvsp[(3) - (3)].table),NULL,TL_OPTION_UPDATING,
                                       TL_IGNORE))
              MYSQL_YYABORT;
          }
    break;

  case 942:

/* Line 1455 of yacc.c  */
#line 6517 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command= SQLCOM_ASSIGN_TO_KEYCACHE;
            lex->ident= (yyvsp[(5) - (5)].lex_str);
          }
    break;

  case 945:

/* Line 1455 of yacc.c  */
#line 6531 "sql_yacc.yy"
    {
            if (!Select->add_table_to_list(YYTHD, (yyvsp[(1) - (2)].table), NULL, 0, TL_READ, 
                                           Select->pop_index_hints()))
              MYSQL_YYABORT;
          }
    break;

  case 946:

/* Line 1455 of yacc.c  */
#line 6539 "sql_yacc.yy"
    { (yyval.lex_str)= (yyvsp[(1) - (1)].lex_str); }
    break;

  case 947:

/* Line 1455 of yacc.c  */
#line 6540 "sql_yacc.yy"
    { (yyval.lex_str) = default_key_cache_base; }
    break;

  case 948:

/* Line 1455 of yacc.c  */
#line 6545 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command=SQLCOM_PRELOAD_KEYS;
          }
    break;

  case 949:

/* Line 1455 of yacc.c  */
#line 6550 "sql_yacc.yy"
    {}
    break;

  case 952:

/* Line 1455 of yacc.c  */
#line 6560 "sql_yacc.yy"
    {
            if (!Select->add_table_to_list(YYTHD, (yyvsp[(1) - (3)].table), NULL, (yyvsp[(3) - (3)].num), TL_READ,
                                           Select->pop_index_hints()))
              MYSQL_YYABORT;
          }
    break;

  case 953:

/* Line 1455 of yacc.c  */
#line 6568 "sql_yacc.yy"
    {
            Lex->select_lex.alloc_index_hints(YYTHD);
            Select->set_index_hint_type(INDEX_HINT_USE, 
                                        global_system_variables.old_mode ? 
                                        INDEX_HINT_MASK_JOIN : 
                                        INDEX_HINT_MASK_ALL);
          }
    break;

  case 955:

/* Line 1455 of yacc.c  */
#line 6579 "sql_yacc.yy"
    { }
    break;

  case 957:

/* Line 1455 of yacc.c  */
#line 6585 "sql_yacc.yy"
    { (yyval.num)= 0; }
    break;

  case 958:

/* Line 1455 of yacc.c  */
#line 6586 "sql_yacc.yy"
    { (yyval.num)= TL_OPTION_IGNORE_LEAVES; }
    break;

  case 959:

/* Line 1455 of yacc.c  */
#line 6596 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_SELECT;
          }
    break;

  case 962:

/* Line 1455 of yacc.c  */
#line 6610 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            SELECT_LEX * sel= lex->current_select;
            if (sel->set_braces(1))
            {
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
            if (sel->linkage == UNION_TYPE &&
                !sel->master_unit()->first_select()->braces &&
                sel->master_unit()->first_select()->linkage ==
                UNION_TYPE)
            {
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
            if (sel->linkage == UNION_TYPE &&
                sel->olap != UNSPECIFIED_OLAP_TYPE &&
                sel->master_unit()->fake_select_lex)
            {
 	       my_error(ER_WRONG_USAGE, MYF(0),
                        "CUBE/ROLLUP", "ORDER BY");
               MYSQL_YYABORT;
            }
            /* select in braces, can't contain global parameters */
            if (sel->master_unit()->fake_select_lex)
              sel->master_unit()->global_parameters=
                 sel->master_unit()->fake_select_lex;
          }
    break;

  case 964:

/* Line 1455 of yacc.c  */
#line 6644 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            SELECT_LEX * sel= lex->current_select;
            if (lex->current_select->set_braces(0))
            {
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
            if (sel->linkage == UNION_TYPE &&
                sel->master_unit()->first_select()->braces)
            {
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
          }
    break;

  case 966:

/* Line 1455 of yacc.c  */
#line 6663 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            SELECT_LEX *sel= lex->current_select;
            if (sel->linkage != UNION_TYPE)
              mysql_init_select(lex);
            lex->current_select->parsing_place= SELECT_LIST;
          }
    break;

  case 967:

/* Line 1455 of yacc.c  */
#line 6671 "sql_yacc.yy"
    {
            Select->parsing_place= NO_MATTER;
          }
    break;

  case 969:

/* Line 1455 of yacc.c  */
#line 6678 "sql_yacc.yy"
    {}
    break;

  case 974:

/* Line 1455 of yacc.c  */
#line 6688 "sql_yacc.yy"
    {
            Select->context.table_list=
              Select->context.first_name_resolution_table= 
                (TABLE_LIST *) Select->table_list.first;
          }
    break;

  case 977:

/* Line 1455 of yacc.c  */
#line 6703 "sql_yacc.yy"
    {
            if (Select->options & SELECT_DISTINCT && Select->options & SELECT_ALL)
            {
              my_error(ER_WRONG_USAGE, MYF(0), "ALL", "DISTINCT");
              MYSQL_YYABORT;
            }
          }
    break;

  case 980:

/* Line 1455 of yacc.c  */
#line 6718 "sql_yacc.yy"
    { Select->options|= SELECT_STRAIGHT_JOIN; }
    break;

  case 981:

/* Line 1455 of yacc.c  */
#line 6720 "sql_yacc.yy"
    {
            if (check_simple_select())
              MYSQL_YYABORT;
            Lex->lock_option=  TL_READ_HIGH_PRIORITY;
            Lex->current_select->lock_option= TL_READ_HIGH_PRIORITY;
          }
    break;

  case 982:

/* Line 1455 of yacc.c  */
#line 6726 "sql_yacc.yy"
    { Select->options|= SELECT_DISTINCT; }
    break;

  case 983:

/* Line 1455 of yacc.c  */
#line 6727 "sql_yacc.yy"
    { Select->options|= SELECT_SMALL_RESULT; }
    break;

  case 984:

/* Line 1455 of yacc.c  */
#line 6728 "sql_yacc.yy"
    { Select->options|= SELECT_BIG_RESULT; }
    break;

  case 985:

/* Line 1455 of yacc.c  */
#line 6730 "sql_yacc.yy"
    {
            if (check_simple_select())
              MYSQL_YYABORT;
            Select->options|= OPTION_BUFFER_RESULT;
          }
    break;

  case 986:

/* Line 1455 of yacc.c  */
#line 6736 "sql_yacc.yy"
    {
            if (check_simple_select())
              MYSQL_YYABORT;
            Select->options|= OPTION_FOUND_ROWS;
          }
    break;

  case 987:

/* Line 1455 of yacc.c  */
#line 6742 "sql_yacc.yy"
    {
            Lex->safe_to_cache_query=0;
            Lex->select_lex.options&= ~OPTION_TO_QUERY_CACHE;
            Lex->select_lex.sql_cache= SELECT_LEX::SQL_NO_CACHE;
          }
    break;

  case 988:

/* Line 1455 of yacc.c  */
#line 6748 "sql_yacc.yy"
    {
            /*
             Honor this flag only if SQL_NO_CACHE wasn't specified AND
             we are parsing the outermost SELECT in the query.
            */
            if (Lex->select_lex.sql_cache != SELECT_LEX::SQL_NO_CACHE &&
                Lex->current_select == &Lex->select_lex)
            {
              Lex->safe_to_cache_query=1;
              Lex->select_lex.options|= OPTION_TO_QUERY_CACHE;
              Lex->select_lex.sql_cache= SELECT_LEX::SQL_CACHE;
            }
          }
    break;

  case 989:

/* Line 1455 of yacc.c  */
#line 6761 "sql_yacc.yy"
    { Select->options|= SELECT_ALL; }
    break;

  case 991:

/* Line 1455 of yacc.c  */
#line 6767 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->current_select->set_lock_for_tables(TL_WRITE);
            lex->current_select->lock_option= TL_WRITE;
            lex->safe_to_cache_query=0;
            lex->protect_against_global_read_lock= TRUE;
          }
    break;

  case 992:

/* Line 1455 of yacc.c  */
#line 6775 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->current_select->
              set_lock_for_tables(TL_READ_WITH_SHARED_LOCKS);
            lex->current_select->lock_option= TL_READ_WITH_SHARED_LOCKS;
            lex->safe_to_cache_query=0;
          }
    break;

  case 995:

/* Line 1455 of yacc.c  */
#line 6788 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            Item *item= new (thd->mem_root)
                          Item_field(&thd->lex->current_select->context,
                                     NULL, NULL, "*");
            if (item == NULL)
              MYSQL_YYABORT;
            if (add_item_to_list(thd, item))
              MYSQL_YYABORT;
            (thd->lex->current_select->with_wild)++;
          }
    break;

  case 996:

/* Line 1455 of yacc.c  */
#line 6803 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            DBUG_ASSERT((yyvsp[(1) - (4)].simple_string) < (yyvsp[(3) - (4)].simple_string));

            if (add_item_to_list(thd, (yyvsp[(2) - (4)].item)))
              MYSQL_YYABORT;
            if ((yyvsp[(4) - (4)].lex_str).str)
            {
              if (Lex->sql_command == SQLCOM_CREATE_VIEW &&
                  check_column_name((yyvsp[(4) - (4)].lex_str).str))
              {
                my_error(ER_WRONG_COLUMN_NAME, MYF(0), (yyvsp[(4) - (4)].lex_str).str);
                MYSQL_YYABORT;
              }
              (yyvsp[(2) - (4)].item)->is_autogenerated_name= FALSE;
              (yyvsp[(2) - (4)].item)->set_name((yyvsp[(4) - (4)].lex_str).str, (yyvsp[(4) - (4)].lex_str).length, system_charset_info);
            }
            else if (!(yyvsp[(2) - (4)].item)->name)
            {
              (yyvsp[(2) - (4)].item)->set_name((yyvsp[(1) - (4)].simple_string), (uint) ((yyvsp[(3) - (4)].simple_string) - (yyvsp[(1) - (4)].simple_string)), thd->charset());
            }
          }
    break;

  case 997:

/* Line 1455 of yacc.c  */
#line 6828 "sql_yacc.yy"
    {
            (yyval.simple_string)= (char*) YYLIP->get_cpp_tok_start();
          }
    break;

  case 998:

/* Line 1455 of yacc.c  */
#line 6834 "sql_yacc.yy"
    {
            (yyval.simple_string)= (char*) YYLIP->get_cpp_tok_end();
          }
    break;

  case 999:

/* Line 1455 of yacc.c  */
#line 6840 "sql_yacc.yy"
    { (yyval.item)=(yyvsp[(1) - (1)].item); /* table.* */ }
    break;

  case 1000:

/* Line 1455 of yacc.c  */
#line 6841 "sql_yacc.yy"
    { (yyval.item)=(yyvsp[(1) - (1)].item); }
    break;

  case 1001:

/* Line 1455 of yacc.c  */
#line 6845 "sql_yacc.yy"
    { (yyval.lex_str)=null_lex_str;}
    break;

  case 1002:

/* Line 1455 of yacc.c  */
#line 6846 "sql_yacc.yy"
    { (yyval.lex_str)=(yyvsp[(2) - (2)].lex_str); }
    break;

  case 1003:

/* Line 1455 of yacc.c  */
#line 6847 "sql_yacc.yy"
    { (yyval.lex_str)=(yyvsp[(2) - (2)].lex_str); }
    break;

  case 1004:

/* Line 1455 of yacc.c  */
#line 6848 "sql_yacc.yy"
    { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str); }
    break;

  case 1005:

/* Line 1455 of yacc.c  */
#line 6849 "sql_yacc.yy"
    { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str); }
    break;

  case 1006:

/* Line 1455 of yacc.c  */
#line 6853 "sql_yacc.yy"
    {}
    break;

  case 1007:

/* Line 1455 of yacc.c  */
#line 6854 "sql_yacc.yy"
    {}
    break;

  case 1008:

/* Line 1455 of yacc.c  */
#line 6860 "sql_yacc.yy"
    {
            /*
              Design notes:
              Do not use a manually maintained stack like thd->lex->xxx_list,
              but use the internal bison stack ($$, $1 and $3) instead.
              Using the bison stack is:
              - more robust to changes in the grammar,
              - guaranteed to be in sync with the parser state,
              - better for performances (no memory allocation).
            */
            Item_cond_or *item1;
            Item_cond_or *item3;
            if (is_cond_or((yyvsp[(1) - (3)].item)))
            {
              item1= (Item_cond_or*) (yyvsp[(1) - (3)].item);
              if (is_cond_or((yyvsp[(3) - (3)].item)))
              {
                item3= (Item_cond_or*) (yyvsp[(3) - (3)].item);
                /*
                  (X1 OR X2) OR (Y1 OR Y2) ==> OR (X1, X2, Y1, Y2)
                */
                item3->add_at_head(item1->argument_list());
                (yyval.item) = (yyvsp[(3) - (3)].item);
              }
              else
              {
                /*
                  (X1 OR X2) OR Y ==> OR (X1, X2, Y)
                */
                item1->add((yyvsp[(3) - (3)].item));
                (yyval.item) = (yyvsp[(1) - (3)].item);
              }
            }
            else if (is_cond_or((yyvsp[(3) - (3)].item)))
            {
              item3= (Item_cond_or*) (yyvsp[(3) - (3)].item);
              /*
                X OR (Y1 OR Y2) ==> OR (X, Y1, Y2)
              */
              item3->add_at_head((yyvsp[(1) - (3)].item));
              (yyval.item) = (yyvsp[(3) - (3)].item);
            }
            else
            {
              /* X OR Y */
              (yyval.item) = new (YYTHD->mem_root) Item_cond_or((yyvsp[(1) - (3)].item), (yyvsp[(3) - (3)].item));
              if ((yyval.item) == NULL)
                MYSQL_YYABORT;
            }
          }
    break;

  case 1009:

/* Line 1455 of yacc.c  */
#line 6911 "sql_yacc.yy"
    {
            /* XOR is a proprietary extension */
            (yyval.item) = new (YYTHD->mem_root) Item_cond_xor((yyvsp[(1) - (3)].item), (yyvsp[(3) - (3)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1010:

/* Line 1455 of yacc.c  */
#line 6918 "sql_yacc.yy"
    {
            /* See comments in rule expr: expr or expr */
            Item_cond_and *item1;
            Item_cond_and *item3;
            if (is_cond_and((yyvsp[(1) - (3)].item)))
            {
              item1= (Item_cond_and*) (yyvsp[(1) - (3)].item);
              if (is_cond_and((yyvsp[(3) - (3)].item)))
              {
                item3= (Item_cond_and*) (yyvsp[(3) - (3)].item);
                /*
                  (X1 AND X2) AND (Y1 AND Y2) ==> AND (X1, X2, Y1, Y2)
                */
                item3->add_at_head(item1->argument_list());
                (yyval.item) = (yyvsp[(3) - (3)].item);
              }
              else
              {
                /*
                  (X1 AND X2) AND Y ==> AND (X1, X2, Y)
                */
                item1->add((yyvsp[(3) - (3)].item));
                (yyval.item) = (yyvsp[(1) - (3)].item);
              }
            }
            else if (is_cond_and((yyvsp[(3) - (3)].item)))
            {
              item3= (Item_cond_and*) (yyvsp[(3) - (3)].item);
              /*
                X AND (Y1 AND Y2) ==> AND (X, Y1, Y2)
              */
              item3->add_at_head((yyvsp[(1) - (3)].item));
              (yyval.item) = (yyvsp[(3) - (3)].item);
            }
            else
            {
              /* X AND Y */
              (yyval.item) = new (YYTHD->mem_root) Item_cond_and((yyvsp[(1) - (3)].item), (yyvsp[(3) - (3)].item));
              if ((yyval.item) == NULL)
                MYSQL_YYABORT;
            }
          }
    break;

  case 1011:

/* Line 1455 of yacc.c  */
#line 6961 "sql_yacc.yy"
    {
            (yyval.item)= negate_expression(YYTHD, (yyvsp[(2) - (2)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1012:

/* Line 1455 of yacc.c  */
#line 6967 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_istrue((yyvsp[(1) - (3)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1013:

/* Line 1455 of yacc.c  */
#line 6973 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_isnottrue((yyvsp[(1) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1014:

/* Line 1455 of yacc.c  */
#line 6979 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_isfalse((yyvsp[(1) - (3)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1015:

/* Line 1455 of yacc.c  */
#line 6985 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_isnotfalse((yyvsp[(1) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1016:

/* Line 1455 of yacc.c  */
#line 6991 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_isnull((yyvsp[(1) - (3)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1017:

/* Line 1455 of yacc.c  */
#line 6997 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_isnotnull((yyvsp[(1) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1019:

/* Line 1455 of yacc.c  */
#line 7007 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_isnull((yyvsp[(1) - (3)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1020:

/* Line 1455 of yacc.c  */
#line 7013 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_isnotnull((yyvsp[(1) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1021:

/* Line 1455 of yacc.c  */
#line 7019 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_equal((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1022:

/* Line 1455 of yacc.c  */
#line 7025 "sql_yacc.yy"
    {
            (yyval.item)= (*(yyvsp[(2) - (3)].boolfunc2creator))(0)->create((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1023:

/* Line 1455 of yacc.c  */
#line 7031 "sql_yacc.yy"
    {
            (yyval.item)= all_any_subquery_creator((yyvsp[(1) - (6)].item), (yyvsp[(2) - (6)].boolfunc2creator), (yyvsp[(3) - (6)].num), (yyvsp[(5) - (6)].select_lex));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1025:

/* Line 1455 of yacc.c  */
#line 7041 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_in_subselect((yyvsp[(1) - (5)].item), (yyvsp[(4) - (5)].select_lex));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1026:

/* Line 1455 of yacc.c  */
#line 7047 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            Item *item= new (thd->mem_root) Item_in_subselect((yyvsp[(1) - (6)].item), (yyvsp[(5) - (6)].select_lex));
            if (item == NULL)
              MYSQL_YYABORT;
            (yyval.item)= negate_expression(thd, item);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1027:

/* Line 1455 of yacc.c  */
#line 7057 "sql_yacc.yy"
    {
            (yyval.item)= handle_sql2003_note184_exception(YYTHD, (yyvsp[(1) - (5)].item), true, (yyvsp[(4) - (5)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1028:

/* Line 1455 of yacc.c  */
#line 7063 "sql_yacc.yy"
    { 
            (yyvsp[(6) - (7)].item_list)->push_front((yyvsp[(4) - (7)].item));
            (yyvsp[(6) - (7)].item_list)->push_front((yyvsp[(1) - (7)].item));
            (yyval.item)= new (YYTHD->mem_root) Item_func_in(*(yyvsp[(6) - (7)].item_list));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1029:

/* Line 1455 of yacc.c  */
#line 7071 "sql_yacc.yy"
    {
            (yyval.item)= handle_sql2003_note184_exception(YYTHD, (yyvsp[(1) - (6)].item), false, (yyvsp[(5) - (6)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1030:

/* Line 1455 of yacc.c  */
#line 7077 "sql_yacc.yy"
    {
            (yyvsp[(7) - (8)].item_list)->push_front((yyvsp[(5) - (8)].item));
            (yyvsp[(7) - (8)].item_list)->push_front((yyvsp[(1) - (8)].item));
            Item_func_in *item = new (YYTHD->mem_root) Item_func_in(*(yyvsp[(7) - (8)].item_list));
            if (item == NULL)
              MYSQL_YYABORT;
            item->negate();
            (yyval.item)= item;
          }
    break;

  case 1031:

/* Line 1455 of yacc.c  */
#line 7087 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_between((yyvsp[(1) - (5)].item),(yyvsp[(3) - (5)].item),(yyvsp[(5) - (5)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1032:

/* Line 1455 of yacc.c  */
#line 7093 "sql_yacc.yy"
    {
            Item_func_between *item;
            item= new (YYTHD->mem_root) Item_func_between((yyvsp[(1) - (6)].item),(yyvsp[(4) - (6)].item),(yyvsp[(6) - (6)].item));
            if (item == NULL)
              MYSQL_YYABORT;
            item->negate();
            (yyval.item)= item;
          }
    break;

  case 1033:

/* Line 1455 of yacc.c  */
#line 7102 "sql_yacc.yy"
    {
            Item *item1= new (YYTHD->mem_root) Item_func_soundex((yyvsp[(1) - (4)].item));
            Item *item4= new (YYTHD->mem_root) Item_func_soundex((yyvsp[(4) - (4)].item));
            if ((item1 == NULL) || (item4 == NULL))
              MYSQL_YYABORT;
            (yyval.item)= new (YYTHD->mem_root) Item_func_eq(item1, item4);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1034:

/* Line 1455 of yacc.c  */
#line 7112 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_like((yyvsp[(1) - (4)].item),(yyvsp[(3) - (4)].item),(yyvsp[(4) - (4)].item),Lex->escape_used);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1035:

/* Line 1455 of yacc.c  */
#line 7118 "sql_yacc.yy"
    {
            Item *item= new (YYTHD->mem_root) Item_func_like((yyvsp[(1) - (5)].item),(yyvsp[(4) - (5)].item),(yyvsp[(5) - (5)].item),
                                                             Lex->escape_used);
            if (item == NULL)
              MYSQL_YYABORT;
            (yyval.item)= new (YYTHD->mem_root) Item_func_not(item);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1036:

/* Line 1455 of yacc.c  */
#line 7128 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_regex((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1037:

/* Line 1455 of yacc.c  */
#line 7134 "sql_yacc.yy"
    {
            Item *item= new (YYTHD->mem_root) Item_func_regex((yyvsp[(1) - (4)].item),(yyvsp[(4) - (4)].item));
            if (item == NULL)
              MYSQL_YYABORT;
            (yyval.item)= negate_expression(YYTHD, item);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1039:

/* Line 1455 of yacc.c  */
#line 7147 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_bit_or((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1040:

/* Line 1455 of yacc.c  */
#line 7153 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_bit_and((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1041:

/* Line 1455 of yacc.c  */
#line 7159 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_shift_left((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1042:

/* Line 1455 of yacc.c  */
#line 7165 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_shift_right((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1043:

/* Line 1455 of yacc.c  */
#line 7171 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_plus((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1044:

/* Line 1455 of yacc.c  */
#line 7177 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_minus((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1045:

/* Line 1455 of yacc.c  */
#line 7183 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_date_add_interval((yyvsp[(1) - (5)].item),(yyvsp[(4) - (5)].item),(yyvsp[(5) - (5)].interval),0);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1046:

/* Line 1455 of yacc.c  */
#line 7189 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_date_add_interval((yyvsp[(1) - (5)].item),(yyvsp[(4) - (5)].item),(yyvsp[(5) - (5)].interval),1);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1047:

/* Line 1455 of yacc.c  */
#line 7195 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_mul((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1048:

/* Line 1455 of yacc.c  */
#line 7201 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_div((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1049:

/* Line 1455 of yacc.c  */
#line 7207 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_mod((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1050:

/* Line 1455 of yacc.c  */
#line 7213 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_int_div((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1051:

/* Line 1455 of yacc.c  */
#line 7219 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_mod((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1052:

/* Line 1455 of yacc.c  */
#line 7225 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_bit_xor((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1062:

/* Line 1455 of yacc.c  */
#line 7254 "sql_yacc.yy"
    { (yyval.boolfunc2creator) = &comp_eq_creator; }
    break;

  case 1063:

/* Line 1455 of yacc.c  */
#line 7255 "sql_yacc.yy"
    { (yyval.boolfunc2creator) = &comp_ge_creator; }
    break;

  case 1064:

/* Line 1455 of yacc.c  */
#line 7256 "sql_yacc.yy"
    { (yyval.boolfunc2creator) = &comp_gt_creator; }
    break;

  case 1065:

/* Line 1455 of yacc.c  */
#line 7257 "sql_yacc.yy"
    { (yyval.boolfunc2creator) = &comp_le_creator; }
    break;

  case 1066:

/* Line 1455 of yacc.c  */
#line 7258 "sql_yacc.yy"
    { (yyval.boolfunc2creator) = &comp_lt_creator; }
    break;

  case 1067:

/* Line 1455 of yacc.c  */
#line 7259 "sql_yacc.yy"
    { (yyval.boolfunc2creator) = &comp_ne_creator; }
    break;

  case 1068:

/* Line 1455 of yacc.c  */
#line 7263 "sql_yacc.yy"
    { (yyval.num) = 1; }
    break;

  case 1069:

/* Line 1455 of yacc.c  */
#line 7264 "sql_yacc.yy"
    { (yyval.num) = 0; }
    break;

  case 1075:

/* Line 1455 of yacc.c  */
#line 7274 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            Item *i1= new (thd->mem_root) Item_string((yyvsp[(3) - (3)].lex_str).str,
                                                      (yyvsp[(3) - (3)].lex_str).length,
                                                      thd->charset());
            if (i1 == NULL)
              MYSQL_YYABORT;
            (yyval.item)= new (thd->mem_root) Item_func_set_collation((yyvsp[(1) - (3)].item), i1);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1080:

/* Line 1455 of yacc.c  */
#line 7290 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_concat((yyvsp[(1) - (3)].item), (yyvsp[(3) - (3)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1081:

/* Line 1455 of yacc.c  */
#line 7296 "sql_yacc.yy"
    {
            (yyval.item)= (yyvsp[(2) - (2)].item);
          }
    break;

  case 1082:

/* Line 1455 of yacc.c  */
#line 7300 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_neg((yyvsp[(2) - (2)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1083:

/* Line 1455 of yacc.c  */
#line 7306 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_bit_neg((yyvsp[(2) - (2)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1084:

/* Line 1455 of yacc.c  */
#line 7312 "sql_yacc.yy"
    {
            (yyval.item)= negate_expression(YYTHD, (yyvsp[(2) - (2)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1085:

/* Line 1455 of yacc.c  */
#line 7318 "sql_yacc.yy"
    { 
            (yyval.item)= new (YYTHD->mem_root) Item_singlerow_subselect((yyvsp[(2) - (3)].select_lex));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1086:

/* Line 1455 of yacc.c  */
#line 7324 "sql_yacc.yy"
    { (yyval.item)= (yyvsp[(2) - (3)].item); }
    break;

  case 1087:

/* Line 1455 of yacc.c  */
#line 7326 "sql_yacc.yy"
    {
            (yyvsp[(4) - (5)].item_list)->push_front((yyvsp[(2) - (5)].item));
            (yyval.item)= new (YYTHD->mem_root) Item_row(*(yyvsp[(4) - (5)].item_list));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1088:

/* Line 1455 of yacc.c  */
#line 7333 "sql_yacc.yy"
    {
            (yyvsp[(5) - (6)].item_list)->push_front((yyvsp[(3) - (6)].item));
            (yyval.item)= new (YYTHD->mem_root) Item_row(*(yyvsp[(5) - (6)].item_list));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1089:

/* Line 1455 of yacc.c  */
#line 7340 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_exists_subselect((yyvsp[(3) - (4)].select_lex));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1090:

/* Line 1455 of yacc.c  */
#line 7346 "sql_yacc.yy"
    { (yyval.item)= (yyvsp[(3) - (4)].item); }
    break;

  case 1091:

/* Line 1455 of yacc.c  */
#line 7348 "sql_yacc.yy"
    {
            (yyvsp[(2) - (7)].item_list)->push_front((yyvsp[(5) - (7)].item));
            Item_func_match *i1= new (YYTHD->mem_root) Item_func_match(*(yyvsp[(2) - (7)].item_list), (yyvsp[(6) - (7)].num));
            if (i1 == NULL)
              MYSQL_YYABORT;
            Select->add_ftfunc_to_list(i1);
            (yyval.item)= i1;
          }
    break;

  case 1092:

/* Line 1455 of yacc.c  */
#line 7357 "sql_yacc.yy"
    {
            (yyval.item)= create_func_cast(YYTHD, (yyvsp[(2) - (2)].item), ITEM_CAST_CHAR, NULL, NULL,
                                 &my_charset_bin);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1093:

/* Line 1455 of yacc.c  */
#line 7364 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            (yyval.item)= create_func_cast(YYTHD, (yyvsp[(3) - (6)].item), (yyvsp[(5) - (6)].cast_type), lex->length, lex->dec,
                                 lex->charset);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1094:

/* Line 1455 of yacc.c  */
#line 7372 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_case(* (yyvsp[(3) - (5)].item_list), (yyvsp[(2) - (5)].item), (yyvsp[(4) - (5)].item) );
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1095:

/* Line 1455 of yacc.c  */
#line 7378 "sql_yacc.yy"
    {
            (yyval.item)= create_func_cast(YYTHD, (yyvsp[(3) - (6)].item), (yyvsp[(5) - (6)].cast_type), Lex->length, Lex->dec,
                                 Lex->charset);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1096:

/* Line 1455 of yacc.c  */
#line 7385 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_conv_charset((yyvsp[(3) - (6)].item),(yyvsp[(5) - (6)].charset));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1097:

/* Line 1455 of yacc.c  */
#line 7391 "sql_yacc.yy"
    {
            if ((yyvsp[(3) - (4)].item)->is_splocal())
            {
              Item_splocal *il= static_cast<Item_splocal *>((yyvsp[(3) - (4)].item));

              my_error(ER_WRONG_COLUMN_NAME, MYF(0), il->my_name()->str);
              MYSQL_YYABORT;
            }
            (yyval.item)= new (YYTHD->mem_root) Item_default_value(Lex->current_context(),
                                                         (yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1098:

/* Line 1455 of yacc.c  */
#line 7405 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_insert_value(Lex->current_context(),
                                                        (yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1099:

/* Line 1455 of yacc.c  */
#line 7413 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_date_add_interval((yyvsp[(5) - (5)].item),(yyvsp[(2) - (5)].item),(yyvsp[(3) - (5)].interval),0);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1100:

/* Line 1455 of yacc.c  */
#line 7428 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_char(*(yyvsp[(3) - (4)].item_list));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1101:

/* Line 1455 of yacc.c  */
#line 7434 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_char(*(yyvsp[(3) - (6)].item_list), (yyvsp[(5) - (6)].charset));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1102:

/* Line 1455 of yacc.c  */
#line 7440 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_current_user(Lex->current_context());
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
            Lex->set_stmt_unsafe();
            Lex->safe_to_cache_query= 0;
          }
    break;

  case 1103:

/* Line 1455 of yacc.c  */
#line 7448 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_date_typecast((yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1104:

/* Line 1455 of yacc.c  */
#line 7454 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_dayofmonth((yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1105:

/* Line 1455 of yacc.c  */
#line 7460 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_hour((yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1106:

/* Line 1455 of yacc.c  */
#line 7466 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_insert((yyvsp[(3) - (10)].item),(yyvsp[(5) - (10)].item),(yyvsp[(7) - (10)].item),(yyvsp[(9) - (10)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1107:

/* Line 1455 of yacc.c  */
#line 7472 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            List<Item> *list= new (thd->mem_root) List<Item>;
            if (list == NULL)
              MYSQL_YYABORT;
            list->push_front((yyvsp[(5) - (6)].item));
            list->push_front((yyvsp[(3) - (6)].item));
            Item_row *item= new (thd->mem_root) Item_row(*list);
            if (item == NULL)
              MYSQL_YYABORT;
            (yyval.item)= new (thd->mem_root) Item_func_interval(item);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1108:

/* Line 1455 of yacc.c  */
#line 7487 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            (yyvsp[(7) - (8)].item_list)->push_front((yyvsp[(5) - (8)].item));
            (yyvsp[(7) - (8)].item_list)->push_front((yyvsp[(3) - (8)].item));
            Item_row *item= new (thd->mem_root) Item_row(*(yyvsp[(7) - (8)].item_list));
            if (item == NULL)
              MYSQL_YYABORT;
            (yyval.item)= new (thd->mem_root) Item_func_interval(item);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1109:

/* Line 1455 of yacc.c  */
#line 7499 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_left((yyvsp[(3) - (6)].item),(yyvsp[(5) - (6)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1110:

/* Line 1455 of yacc.c  */
#line 7505 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_minute((yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1111:

/* Line 1455 of yacc.c  */
#line 7511 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_month((yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1112:

/* Line 1455 of yacc.c  */
#line 7517 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_right((yyvsp[(3) - (6)].item),(yyvsp[(5) - (6)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1113:

/* Line 1455 of yacc.c  */
#line 7523 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_second((yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1114:

/* Line 1455 of yacc.c  */
#line 7529 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_time_typecast((yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1115:

/* Line 1455 of yacc.c  */
#line 7535 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_datetime_typecast((yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1116:

/* Line 1455 of yacc.c  */
#line 7541 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_add_time((yyvsp[(3) - (6)].item), (yyvsp[(5) - (6)].item), 1, 0);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1117:

/* Line 1455 of yacc.c  */
#line 7547 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_trim((yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1118:

/* Line 1455 of yacc.c  */
#line 7553 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_ltrim((yyvsp[(6) - (7)].item),(yyvsp[(4) - (7)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1119:

/* Line 1455 of yacc.c  */
#line 7559 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_rtrim((yyvsp[(6) - (7)].item),(yyvsp[(4) - (7)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1120:

/* Line 1455 of yacc.c  */
#line 7565 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_trim((yyvsp[(6) - (7)].item),(yyvsp[(4) - (7)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1121:

/* Line 1455 of yacc.c  */
#line 7571 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_ltrim((yyvsp[(5) - (6)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1122:

/* Line 1455 of yacc.c  */
#line 7577 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_rtrim((yyvsp[(5) - (6)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1123:

/* Line 1455 of yacc.c  */
#line 7583 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_trim((yyvsp[(5) - (6)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1124:

/* Line 1455 of yacc.c  */
#line 7589 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_trim((yyvsp[(5) - (6)].item),(yyvsp[(3) - (6)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1125:

/* Line 1455 of yacc.c  */
#line 7595 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_user();
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
            Lex->set_stmt_unsafe();
            Lex->safe_to_cache_query=0;
          }
    break;

  case 1126:

/* Line 1455 of yacc.c  */
#line 7603 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_year((yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1127:

/* Line 1455 of yacc.c  */
#line 7624 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_date_add_interval((yyvsp[(3) - (6)].item), (yyvsp[(5) - (6)].item),
                                                             INTERVAL_DAY, 0);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1128:

/* Line 1455 of yacc.c  */
#line 7631 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_date_add_interval((yyvsp[(3) - (8)].item), (yyvsp[(6) - (8)].item), (yyvsp[(7) - (8)].interval), 0);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1129:

/* Line 1455 of yacc.c  */
#line 7637 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_curdate_local();
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
            Lex->safe_to_cache_query=0;
          }
    break;

  case 1130:

/* Line 1455 of yacc.c  */
#line 7644 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_curtime_local();
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
            Lex->safe_to_cache_query=0;
          }
    break;

  case 1131:

/* Line 1455 of yacc.c  */
#line 7651 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_curtime_local((yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
            Lex->safe_to_cache_query=0;
          }
    break;

  case 1132:

/* Line 1455 of yacc.c  */
#line 7659 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_date_add_interval((yyvsp[(3) - (8)].item),(yyvsp[(6) - (8)].item),(yyvsp[(7) - (8)].interval),0);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1133:

/* Line 1455 of yacc.c  */
#line 7666 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_date_add_interval((yyvsp[(3) - (8)].item),(yyvsp[(6) - (8)].item),(yyvsp[(7) - (8)].interval),1);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1134:

/* Line 1455 of yacc.c  */
#line 7672 "sql_yacc.yy"
    {
            (yyval.item)=new (YYTHD->mem_root) Item_extract( (yyvsp[(3) - (6)].interval), (yyvsp[(5) - (6)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1135:

/* Line 1455 of yacc.c  */
#line 7678 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_get_format((yyvsp[(3) - (6)].date_time_type), (yyvsp[(5) - (6)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1136:

/* Line 1455 of yacc.c  */
#line 7684 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_now_local();
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
            Lex->safe_to_cache_query=0;
          }
    break;

  case 1137:

/* Line 1455 of yacc.c  */
#line 7691 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_now_local((yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
            Lex->safe_to_cache_query=0;
          }
    break;

  case 1138:

/* Line 1455 of yacc.c  */
#line 7698 "sql_yacc.yy"
    {
            (yyval.item) = new (YYTHD->mem_root) Item_func_locate((yyvsp[(5) - (6)].item),(yyvsp[(3) - (6)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1139:

/* Line 1455 of yacc.c  */
#line 7704 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_date_add_interval((yyvsp[(3) - (6)].item), (yyvsp[(5) - (6)].item),
                                                             INTERVAL_DAY, 1);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1140:

/* Line 1455 of yacc.c  */
#line 7711 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_date_add_interval((yyvsp[(3) - (8)].item), (yyvsp[(6) - (8)].item), (yyvsp[(7) - (8)].interval), 1);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1141:

/* Line 1455 of yacc.c  */
#line 7717 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_substr((yyvsp[(3) - (8)].item),(yyvsp[(5) - (8)].item),(yyvsp[(7) - (8)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1142:

/* Line 1455 of yacc.c  */
#line 7723 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_substr((yyvsp[(3) - (6)].item),(yyvsp[(5) - (6)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1143:

/* Line 1455 of yacc.c  */
#line 7729 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_substr((yyvsp[(3) - (8)].item),(yyvsp[(5) - (8)].item),(yyvsp[(7) - (8)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1144:

/* Line 1455 of yacc.c  */
#line 7735 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_substr((yyvsp[(3) - (6)].item),(yyvsp[(5) - (6)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1145:

/* Line 1455 of yacc.c  */
#line 7741 "sql_yacc.yy"
    {
            /*
              Unlike other time-related functions, SYSDATE() is
              replication-unsafe because it is not affected by the
              TIMESTAMP variable.  It is unsafe even if
              sysdate_is_now=1, because the slave may have
              sysdate_is_now=0.
            */
            Lex->set_stmt_unsafe();
            if (global_system_variables.sysdate_is_now == 0)
              (yyval.item)= new (YYTHD->mem_root) Item_func_sysdate_local();
            else
              (yyval.item)= new (YYTHD->mem_root) Item_func_now_local();
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
            Lex->safe_to_cache_query=0;
          }
    break;

  case 1146:

/* Line 1455 of yacc.c  */
#line 7759 "sql_yacc.yy"
    {
            if (global_system_variables.sysdate_is_now == 0)
              (yyval.item)= new (YYTHD->mem_root) Item_func_sysdate_local((yyvsp[(3) - (4)].item));
            else
              (yyval.item)= new (YYTHD->mem_root) Item_func_now_local((yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
            Lex->safe_to_cache_query=0;
          }
    break;

  case 1147:

/* Line 1455 of yacc.c  */
#line 7769 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_date_add_interval((yyvsp[(7) - (8)].item),(yyvsp[(5) - (8)].item),(yyvsp[(3) - (8)].interval_time_st),0);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1148:

/* Line 1455 of yacc.c  */
#line 7775 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_timestamp_diff((yyvsp[(5) - (8)].item),(yyvsp[(7) - (8)].item),(yyvsp[(3) - (8)].interval_time_st));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1149:

/* Line 1455 of yacc.c  */
#line 7781 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_curdate_utc();
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
            Lex->safe_to_cache_query=0;
          }
    break;

  case 1150:

/* Line 1455 of yacc.c  */
#line 7788 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_curtime_utc();
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
            Lex->safe_to_cache_query=0;
          }
    break;

  case 1151:

/* Line 1455 of yacc.c  */
#line 7795 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_now_utc();
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
            Lex->safe_to_cache_query=0;
          }
    break;

  case 1152:

/* Line 1455 of yacc.c  */
#line 7810 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_ascii((yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1153:

/* Line 1455 of yacc.c  */
#line 7816 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_charset((yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1154:

/* Line 1455 of yacc.c  */
#line 7822 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_coalesce(* (yyvsp[(3) - (4)].item_list));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1155:

/* Line 1455 of yacc.c  */
#line 7828 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_collation((yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1156:

/* Line 1455 of yacc.c  */
#line 7834 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_database();
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
            Lex->safe_to_cache_query=0;
          }
    break;

  case 1157:

/* Line 1455 of yacc.c  */
#line 7841 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_if((yyvsp[(3) - (8)].item),(yyvsp[(5) - (8)].item),(yyvsp[(7) - (8)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1158:

/* Line 1455 of yacc.c  */
#line 7847 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_microsecond((yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1159:

/* Line 1455 of yacc.c  */
#line 7853 "sql_yacc.yy"
    {
            (yyval.item) = new (YYTHD->mem_root) Item_func_mod((yyvsp[(3) - (6)].item), (yyvsp[(5) - (6)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1160:

/* Line 1455 of yacc.c  */
#line 7859 "sql_yacc.yy"
    {
            (yyval.item)=  new (YYTHD->mem_root) Item_func_old_password((yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1161:

/* Line 1455 of yacc.c  */
#line 7865 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            Item* i1;
            if (thd->variables.old_passwords)
              i1= new (thd->mem_root) Item_func_old_password((yyvsp[(3) - (4)].item));
            else
              i1= new (thd->mem_root) Item_func_password((yyvsp[(3) - (4)].item));
            if (i1 == NULL)
              MYSQL_YYABORT;
            (yyval.item)= i1;
          }
    break;

  case 1162:

/* Line 1455 of yacc.c  */
#line 7877 "sql_yacc.yy"
    {
            (yyval.item) = new (YYTHD->mem_root) Item_func_quarter((yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1163:

/* Line 1455 of yacc.c  */
#line 7883 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_repeat((yyvsp[(3) - (6)].item),(yyvsp[(5) - (6)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1164:

/* Line 1455 of yacc.c  */
#line 7889 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_replace((yyvsp[(3) - (8)].item),(yyvsp[(5) - (8)].item),(yyvsp[(7) - (8)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1165:

/* Line 1455 of yacc.c  */
#line 7895 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_round((yyvsp[(3) - (6)].item),(yyvsp[(5) - (6)].item),1);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1166:

/* Line 1455 of yacc.c  */
#line 7901 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            Item *i1= new (thd->mem_root) Item_int((char*) "0",
                                           thd->variables.default_week_format,
                                                   1);
            if (i1 == NULL)
              MYSQL_YYABORT;
            (yyval.item)= new (thd->mem_root) Item_func_week((yyvsp[(3) - (4)].item), i1);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1167:

/* Line 1455 of yacc.c  */
#line 7913 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_week((yyvsp[(3) - (6)].item),(yyvsp[(5) - (6)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1168:

/* Line 1455 of yacc.c  */
#line 7919 "sql_yacc.yy"
    {
#ifdef HAVE_SPATIAL
            (yyval.item)= (yyvsp[(1) - (1)].item);
            /* $1 may be NULL, GEOM_NEW not tested for out of memory */
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
#else
            my_error(ER_FEATURE_DISABLED, MYF(0),
                     sym_group_geom.name, sym_group_geom.needed_define);
            MYSQL_YYABORT;
#endif
          }
    break;

  case 1169:

/* Line 1455 of yacc.c  */
#line 7935 "sql_yacc.yy"
    {
            (yyval.item)= GEOM_NEW(YYTHD,
                         Item_func_spatial_rel((yyvsp[(3) - (6)].item), (yyvsp[(5) - (6)].item),
                                               Item_func::SP_CONTAINS_FUNC));
          }
    break;

  case 1170:

/* Line 1455 of yacc.c  */
#line 7941 "sql_yacc.yy"
    {
            (yyval.item)= GEOM_NEW(YYTHD,
                         Item_func_spatial_collection(* (yyvsp[(3) - (4)].item_list),
                           Geometry::wkb_geometrycollection,
                           Geometry::wkb_point));
          }
    break;

  case 1171:

/* Line 1455 of yacc.c  */
#line 7948 "sql_yacc.yy"
    {
            (yyval.item)= GEOM_NEW(YYTHD,
                         Item_func_spatial_collection(* (yyvsp[(3) - (4)].item_list),
                           Geometry::wkb_linestring,
                           Geometry::wkb_point));
          }
    break;

  case 1172:

/* Line 1455 of yacc.c  */
#line 7955 "sql_yacc.yy"
    {
            (yyval.item)= GEOM_NEW(YYTHD,
                         Item_func_spatial_collection(* (yyvsp[(3) - (4)].item_list),
                           Geometry::wkb_multilinestring,
                           Geometry::wkb_linestring));
          }
    break;

  case 1173:

/* Line 1455 of yacc.c  */
#line 7962 "sql_yacc.yy"
    {
            (yyval.item)= GEOM_NEW(YYTHD,
                         Item_func_spatial_collection(* (yyvsp[(3) - (4)].item_list),
                           Geometry::wkb_multipoint,
                           Geometry::wkb_point));
          }
    break;

  case 1174:

/* Line 1455 of yacc.c  */
#line 7969 "sql_yacc.yy"
    {
            (yyval.item)= GEOM_NEW(YYTHD,
                         Item_func_spatial_collection(* (yyvsp[(3) - (4)].item_list),
                           Geometry::wkb_multipolygon,
                           Geometry::wkb_polygon));
          }
    break;

  case 1175:

/* Line 1455 of yacc.c  */
#line 7976 "sql_yacc.yy"
    {
            (yyval.item)= GEOM_NEW(YYTHD, Item_func_point((yyvsp[(3) - (6)].item),(yyvsp[(5) - (6)].item)));
          }
    break;

  case 1176:

/* Line 1455 of yacc.c  */
#line 7980 "sql_yacc.yy"
    {
            (yyval.item)= GEOM_NEW(YYTHD,
                         Item_func_spatial_collection(* (yyvsp[(3) - (4)].item_list),
                           Geometry::wkb_polygon,
                           Geometry::wkb_linestring));
          }
    break;

  case 1177:

/* Line 1455 of yacc.c  */
#line 7999 "sql_yacc.yy"
    {
#ifdef HAVE_DLOPEN
            udf_func *udf= 0;
            LEX *lex= Lex;
            if (using_udf_functions &&
                (udf= find_udf((yyvsp[(1) - (2)].lex_str).str, (yyvsp[(1) - (2)].lex_str).length)) &&
                udf->type == UDFTYPE_AGGREGATE)
            {
              if (lex->current_select->inc_in_sum_expr())
              {
                my_parse_error(ER(ER_SYNTAX_ERROR));
                MYSQL_YYABORT;
              }
            }
            /* Temporary placing the result of find_udf in $3 */
            (yyval.udf)= udf;
#endif
          }
    break;

  case 1178:

/* Line 1455 of yacc.c  */
#line 8018 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            Create_func *builder;
            Item *item= NULL;

            /*
              Implementation note:
              names are resolved with the following order:
              - MySQL native functions,
              - User Defined Functions,
              - Stored Functions (assuming the current <use> database)

              This will be revised with WL#2128 (SQL PATH)
            */
            builder= find_native_function_builder(thd, (yyvsp[(1) - (5)].lex_str));
            if (builder)
            {
              item= builder->create_func(thd, (yyvsp[(1) - (5)].lex_str), (yyvsp[(4) - (5)].item_list));
            }
            else
            {
#ifdef HAVE_DLOPEN
              /* Retrieving the result of find_udf */
              udf_func *udf= (yyvsp[(3) - (5)].udf);

              if (udf)
              {
                if (udf->type == UDFTYPE_AGGREGATE)
                {
                  Select->in_sum_expr--;
                }

                item= Create_udf_func::s_singleton.create(thd, udf, (yyvsp[(4) - (5)].item_list));
              }
              else
#endif
              {
                builder= find_qualified_function_builder(thd);
                DBUG_ASSERT(builder);
                item= builder->create_func(thd, (yyvsp[(1) - (5)].lex_str), (yyvsp[(4) - (5)].item_list));
              }
            }

            if (! ((yyval.item)= item))
            {
              MYSQL_YYABORT;
            }
          }
    break;

  case 1179:

/* Line 1455 of yacc.c  */
#line 8067 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            Create_qfunc *builder;
            Item *item= NULL;

            /*
              The following in practice calls:
              <code>Create_sp_func::create()</code>
              and builds a stored function.

              However, it's important to maintain the interface between the
              parser and the implementation in item_create.cc clean,
              since this will change with WL#2128 (SQL PATH):
              - INFORMATION_SCHEMA.version() is the SQL 99 syntax for the native
              function version(),
              - MySQL.version() is the SQL 2003 syntax for the native function
              version() (a vendor can specify any schema).
            */

            builder= find_qualified_function_builder(thd);
            DBUG_ASSERT(builder);
            item= builder->create(thd, (yyvsp[(1) - (6)].lex_str), (yyvsp[(3) - (6)].lex_str), true, (yyvsp[(5) - (6)].item_list));

            if (! ((yyval.item)= item))
            {
              MYSQL_YYABORT;
            }
          }
    break;

  case 1180:

/* Line 1455 of yacc.c  */
#line 8099 "sql_yacc.yy"
    { (yyval.num)= (yyvsp[(1) - (2)].num) | (yyvsp[(2) - (2)].num); }
    break;

  case 1181:

/* Line 1455 of yacc.c  */
#line 8101 "sql_yacc.yy"
    { (yyval.num)= FT_BOOL; }
    break;

  case 1182:

/* Line 1455 of yacc.c  */
#line 8105 "sql_yacc.yy"
    { (yyval.num)= FT_NL; }
    break;

  case 1183:

/* Line 1455 of yacc.c  */
#line 8106 "sql_yacc.yy"
    { (yyval.num)= FT_NL; }
    break;

  case 1184:

/* Line 1455 of yacc.c  */
#line 8110 "sql_yacc.yy"
    { (yyval.num)= 0;         }
    break;

  case 1185:

/* Line 1455 of yacc.c  */
#line 8111 "sql_yacc.yy"
    { (yyval.num)= FT_EXPAND; }
    break;

  case 1186:

/* Line 1455 of yacc.c  */
#line 8115 "sql_yacc.yy"
    { (yyval.item_list)= NULL; }
    break;

  case 1187:

/* Line 1455 of yacc.c  */
#line 8116 "sql_yacc.yy"
    { (yyval.item_list)= (yyvsp[(1) - (1)].item_list); }
    break;

  case 1188:

/* Line 1455 of yacc.c  */
#line 8121 "sql_yacc.yy"
    {
            (yyval.item_list)= new (YYTHD->mem_root) List<Item>;
            if ((yyval.item_list) == NULL)
              MYSQL_YYABORT;
            (yyval.item_list)->push_back((yyvsp[(1) - (1)].item));
          }
    break;

  case 1189:

/* Line 1455 of yacc.c  */
#line 8128 "sql_yacc.yy"
    {
            (yyvsp[(1) - (3)].item_list)->push_back((yyvsp[(3) - (3)].item));
            (yyval.item_list)= (yyvsp[(1) - (3)].item_list);
          }
    break;

  case 1190:

/* Line 1455 of yacc.c  */
#line 8136 "sql_yacc.yy"
    {
            /*
             Use Item::name as a storage for the attribute value of user
             defined function argument. It is safe to use Item::name
             because the syntax will not allow having an explicit name here.
             See WL#1017 re. udf attributes.
            */
            if ((yyvsp[(4) - (4)].lex_str).str)
            {
              (yyvsp[(2) - (4)].item)->is_autogenerated_name= FALSE;
              (yyvsp[(2) - (4)].item)->set_name((yyvsp[(4) - (4)].lex_str).str, (yyvsp[(4) - (4)].lex_str).length, system_charset_info);
            }
            /* 
               A field has to have its proper name in order for name
               resolution to work, something we are only guaranteed if we
               parse it out. If we hijack the input stream with
               remember_name we may get quoted or escaped names.
            */
            else if ((yyvsp[(2) - (4)].item)->type() != Item::FIELD_ITEM)
              (yyvsp[(2) - (4)].item)->set_name((yyvsp[(1) - (4)].simple_string), (uint) ((yyvsp[(3) - (4)].simple_string) - (yyvsp[(1) - (4)].simple_string)), YYTHD->charset());
            (yyval.item)= (yyvsp[(2) - (4)].item);
          }
    break;

  case 1191:

/* Line 1455 of yacc.c  */
#line 8162 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_sum_avg((yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1192:

/* Line 1455 of yacc.c  */
#line 8168 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_sum_avg_distinct((yyvsp[(4) - (5)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1193:

/* Line 1455 of yacc.c  */
#line 8174 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_sum_and((yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1194:

/* Line 1455 of yacc.c  */
#line 8180 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_sum_or((yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1195:

/* Line 1455 of yacc.c  */
#line 8186 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_sum_xor((yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1196:

/* Line 1455 of yacc.c  */
#line 8192 "sql_yacc.yy"
    {
            Item *item= new (YYTHD->mem_root) Item_int((int32) 0L,1);
            if (item == NULL)
              MYSQL_YYABORT;
            (yyval.item)= new (YYTHD->mem_root) Item_sum_count(item);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1197:

/* Line 1455 of yacc.c  */
#line 8201 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_sum_count((yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1198:

/* Line 1455 of yacc.c  */
#line 8207 "sql_yacc.yy"
    { Select->in_sum_expr++; }
    break;

  case 1199:

/* Line 1455 of yacc.c  */
#line 8209 "sql_yacc.yy"
    { Select->in_sum_expr--; }
    break;

  case 1200:

/* Line 1455 of yacc.c  */
#line 8211 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_sum_count_distinct(* (yyvsp[(5) - (7)].item_list));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1201:

/* Line 1455 of yacc.c  */
#line 8217 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_sum_min((yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1202:

/* Line 1455 of yacc.c  */
#line 8228 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_sum_min((yyvsp[(4) - (5)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1203:

/* Line 1455 of yacc.c  */
#line 8234 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_sum_max((yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1204:

/* Line 1455 of yacc.c  */
#line 8240 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_sum_max((yyvsp[(4) - (5)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1205:

/* Line 1455 of yacc.c  */
#line 8246 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_sum_std((yyvsp[(3) - (4)].item), 0);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1206:

/* Line 1455 of yacc.c  */
#line 8252 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_sum_variance((yyvsp[(3) - (4)].item), 0);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1207:

/* Line 1455 of yacc.c  */
#line 8258 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_sum_std((yyvsp[(3) - (4)].item), 1);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1208:

/* Line 1455 of yacc.c  */
#line 8264 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_sum_variance((yyvsp[(3) - (4)].item), 1);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1209:

/* Line 1455 of yacc.c  */
#line 8270 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_sum_sum((yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1210:

/* Line 1455 of yacc.c  */
#line 8276 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_sum_sum_distinct((yyvsp[(4) - (5)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1211:

/* Line 1455 of yacc.c  */
#line 8282 "sql_yacc.yy"
    { Select->in_sum_expr++; }
    break;

  case 1212:

/* Line 1455 of yacc.c  */
#line 8286 "sql_yacc.yy"
    {
            SELECT_LEX *sel= Select;
            sel->in_sum_expr--;
            (yyval.item)= new (YYTHD->mem_root)
                  Item_func_group_concat(Lex->current_context(), (yyvsp[(3) - (8)].num), (yyvsp[(5) - (8)].item_list),
                                         sel->gorder_list, (yyvsp[(7) - (8)].string));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
            (yyvsp[(5) - (8)].item_list)->empty();
          }
    break;

  case 1213:

/* Line 1455 of yacc.c  */
#line 8300 "sql_yacc.yy"
    {
            if (! Lex->parsing_options.allows_variable)
            {
              my_error(ER_VIEW_SELECT_VARIABLE, MYF(0));
              MYSQL_YYABORT;
            }
          }
    break;

  case 1214:

/* Line 1455 of yacc.c  */
#line 8308 "sql_yacc.yy"
    {
            (yyval.item)= (yyvsp[(3) - (3)].item);
          }
    break;

  case 1215:

/* Line 1455 of yacc.c  */
#line 8315 "sql_yacc.yy"
    {
            Item_func_set_user_var *item;
            (yyval.item)= item= new (YYTHD->mem_root) Item_func_set_user_var((yyvsp[(1) - (3)].lex_str), (yyvsp[(3) - (3)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
            LEX *lex= Lex;
            lex->uncacheable(UNCACHEABLE_RAND);
            lex->set_var_list.push_back(item);
          }
    break;

  case 1216:

/* Line 1455 of yacc.c  */
#line 8325 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_get_user_var((yyvsp[(1) - (1)].lex_str));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
            LEX *lex= Lex;
            lex->uncacheable(UNCACHEABLE_RAND);
          }
    break;

  case 1217:

/* Line 1455 of yacc.c  */
#line 8333 "sql_yacc.yy"
    {
            /* disallow "SELECT @@global.global.variable" */
            if ((yyvsp[(3) - (4)].lex_str).str && (yyvsp[(4) - (4)].lex_str).str && check_reserved_words(&(yyvsp[(3) - (4)].lex_str)))
            {
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
            if (!((yyval.item)= get_system_var(YYTHD, (yyvsp[(2) - (4)].var_type), (yyvsp[(3) - (4)].lex_str), (yyvsp[(4) - (4)].lex_str))))
              MYSQL_YYABORT;
            if (!((Item_func_get_system_var*) (yyval.item))->is_written_to_binlog())
              Lex->set_stmt_unsafe();
          }
    break;

  case 1218:

/* Line 1455 of yacc.c  */
#line 8348 "sql_yacc.yy"
    { (yyval.num) = 0; }
    break;

  case 1219:

/* Line 1455 of yacc.c  */
#line 8349 "sql_yacc.yy"
    { (yyval.num) = 1; }
    break;

  case 1220:

/* Line 1455 of yacc.c  */
#line 8354 "sql_yacc.yy"
    {
            (yyval.string)= new (YYTHD->mem_root) String(",", 1, &my_charset_latin1);
            if ((yyval.string) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1221:

/* Line 1455 of yacc.c  */
#line 8359 "sql_yacc.yy"
    { (yyval.string) = (yyvsp[(2) - (2)].string); }
    break;

  case 1222:

/* Line 1455 of yacc.c  */
#line 8364 "sql_yacc.yy"
    {
            Select->gorder_list = NULL;
          }
    break;

  case 1223:

/* Line 1455 of yacc.c  */
#line 8368 "sql_yacc.yy"
    {
            SELECT_LEX *select= Select;
            select->gorder_list= new (YYTHD->mem_root)
                                   SQL_I_List<ORDER>(select->order_list);
            if (select->gorder_list == NULL)
              MYSQL_YYABORT;
            select->order_list.empty();
          }
    break;

  case 1224:

/* Line 1455 of yacc.c  */
#line 8380 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (lex->current_select->inc_in_sum_expr())
            {
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
          }
    break;

  case 1225:

/* Line 1455 of yacc.c  */
#line 8389 "sql_yacc.yy"
    {
            Select->in_sum_expr--;
            (yyval.item)= (yyvsp[(3) - (3)].item);
          }
    break;

  case 1226:

/* Line 1455 of yacc.c  */
#line 8397 "sql_yacc.yy"
    { (yyval.cast_type)=ITEM_CAST_CHAR; Lex->charset= &my_charset_bin; Lex->dec= 0; }
    break;

  case 1227:

/* Line 1455 of yacc.c  */
#line 8399 "sql_yacc.yy"
    { (yyval.cast_type)=ITEM_CAST_CHAR; Lex->dec= 0; }
    break;

  case 1228:

/* Line 1455 of yacc.c  */
#line 8401 "sql_yacc.yy"
    { (yyval.cast_type)=ITEM_CAST_CHAR; Lex->charset= national_charset_info; Lex->dec=0; }
    break;

  case 1229:

/* Line 1455 of yacc.c  */
#line 8403 "sql_yacc.yy"
    { (yyval.cast_type)=ITEM_CAST_SIGNED_INT; Lex->charset= NULL; Lex->dec=Lex->length= (char*)0; }
    break;

  case 1230:

/* Line 1455 of yacc.c  */
#line 8405 "sql_yacc.yy"
    { (yyval.cast_type)=ITEM_CAST_SIGNED_INT; Lex->charset= NULL; Lex->dec=Lex->length= (char*)0; }
    break;

  case 1231:

/* Line 1455 of yacc.c  */
#line 8407 "sql_yacc.yy"
    { (yyval.cast_type)=ITEM_CAST_UNSIGNED_INT; Lex->charset= NULL; Lex->dec=Lex->length= (char*)0; }
    break;

  case 1232:

/* Line 1455 of yacc.c  */
#line 8409 "sql_yacc.yy"
    { (yyval.cast_type)=ITEM_CAST_UNSIGNED_INT; Lex->charset= NULL; Lex->dec=Lex->length= (char*)0; }
    break;

  case 1233:

/* Line 1455 of yacc.c  */
#line 8411 "sql_yacc.yy"
    { (yyval.cast_type)=ITEM_CAST_DATE; Lex->charset= NULL; Lex->dec=Lex->length= (char*)0; }
    break;

  case 1234:

/* Line 1455 of yacc.c  */
#line 8413 "sql_yacc.yy"
    { (yyval.cast_type)=ITEM_CAST_TIME; Lex->charset= NULL; Lex->dec=Lex->length= (char*)0; }
    break;

  case 1235:

/* Line 1455 of yacc.c  */
#line 8415 "sql_yacc.yy"
    { (yyval.cast_type)=ITEM_CAST_DATETIME; Lex->charset= NULL; Lex->dec=Lex->length= (char*)0; }
    break;

  case 1236:

/* Line 1455 of yacc.c  */
#line 8417 "sql_yacc.yy"
    { (yyval.cast_type)=ITEM_CAST_DECIMAL; Lex->charset= NULL; }
    break;

  case 1237:

/* Line 1455 of yacc.c  */
#line 8421 "sql_yacc.yy"
    { (yyval.item_list)= NULL; }
    break;

  case 1238:

/* Line 1455 of yacc.c  */
#line 8422 "sql_yacc.yy"
    { (yyval.item_list)= (yyvsp[(1) - (1)].item_list);}
    break;

  case 1239:

/* Line 1455 of yacc.c  */
#line 8427 "sql_yacc.yy"
    {
            (yyval.item_list)= new (YYTHD->mem_root) List<Item>;
            if ((yyval.item_list) == NULL)
              MYSQL_YYABORT;
            (yyval.item_list)->push_back((yyvsp[(1) - (1)].item));
          }
    break;

  case 1240:

/* Line 1455 of yacc.c  */
#line 8434 "sql_yacc.yy"
    {
            (yyvsp[(1) - (3)].item_list)->push_back((yyvsp[(3) - (3)].item));
            (yyval.item_list)= (yyvsp[(1) - (3)].item_list);
          }
    break;

  case 1241:

/* Line 1455 of yacc.c  */
#line 8441 "sql_yacc.yy"
    { (yyval.item_list)= (yyvsp[(1) - (1)].item_list); }
    break;

  case 1242:

/* Line 1455 of yacc.c  */
#line 8442 "sql_yacc.yy"
    { (yyval.item_list)= (yyvsp[(2) - (3)].item_list); }
    break;

  case 1243:

/* Line 1455 of yacc.c  */
#line 8447 "sql_yacc.yy"
    {
            (yyval.item_list)= new (YYTHD->mem_root) List<Item>;
            if ((yyval.item_list) == NULL)
              MYSQL_YYABORT;
            (yyval.item_list)->push_back((yyvsp[(1) - (1)].item));
          }
    break;

  case 1244:

/* Line 1455 of yacc.c  */
#line 8454 "sql_yacc.yy"
    {
            (yyvsp[(1) - (3)].item_list)->push_back((yyvsp[(3) - (3)].item));
            (yyval.item_list)= (yyvsp[(1) - (3)].item_list);
          }
    break;

  case 1245:

/* Line 1455 of yacc.c  */
#line 8461 "sql_yacc.yy"
    { (yyval.item)= NULL; }
    break;

  case 1246:

/* Line 1455 of yacc.c  */
#line 8462 "sql_yacc.yy"
    { (yyval.item)= (yyvsp[(1) - (1)].item); }
    break;

  case 1247:

/* Line 1455 of yacc.c  */
#line 8466 "sql_yacc.yy"
    { (yyval.item)= NULL; }
    break;

  case 1248:

/* Line 1455 of yacc.c  */
#line 8467 "sql_yacc.yy"
    { (yyval.item)= (yyvsp[(2) - (2)].item); }
    break;

  case 1249:

/* Line 1455 of yacc.c  */
#line 8472 "sql_yacc.yy"
    {
            (yyval.item_list)= new List<Item>;
            if ((yyval.item_list) == NULL)
              MYSQL_YYABORT;
            (yyval.item_list)->push_back((yyvsp[(2) - (4)].item));
            (yyval.item_list)->push_back((yyvsp[(4) - (4)].item));
          }
    break;

  case 1250:

/* Line 1455 of yacc.c  */
#line 8480 "sql_yacc.yy"
    {
            (yyvsp[(1) - (5)].item_list)->push_back((yyvsp[(3) - (5)].item));
            (yyvsp[(1) - (5)].item_list)->push_back((yyvsp[(5) - (5)].item));
            (yyval.item_list)= (yyvsp[(1) - (5)].item_list);
          }
    break;

  case 1251:

/* Line 1455 of yacc.c  */
#line 8489 "sql_yacc.yy"
    { (yyval.table_list)=(yyvsp[(1) - (1)].table_list); }
    break;

  case 1252:

/* Line 1455 of yacc.c  */
#line 8491 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (!((yyval.table_list)= lex->current_select->nest_last_join(lex->thd)))
              MYSQL_YYABORT;
          }
    break;

  case 1253:

/* Line 1455 of yacc.c  */
#line 8499 "sql_yacc.yy"
    { MYSQL_YYABORT_UNLESS((yyval.table_list)=(yyvsp[(1) - (1)].table_list)); }
    break;

  case 1254:

/* Line 1455 of yacc.c  */
#line 8510 "sql_yacc.yy"
    { (yyval.table_list)=(yyvsp[(1) - (1)].table_list); }
    break;

  case 1255:

/* Line 1455 of yacc.c  */
#line 8511 "sql_yacc.yy"
    { (yyval.table_list)=(yyvsp[(3) - (4)].table_list); }
    break;

  case 1256:

/* Line 1455 of yacc.c  */
#line 8516 "sql_yacc.yy"
    { (yyval.table_list)=(yyvsp[(1) - (1)].table_list); }
    break;

  case 1257:

/* Line 1455 of yacc.c  */
#line 8518 "sql_yacc.yy"
    {
            MYSQL_YYABORT_UNLESS((yyvsp[(1) - (3)].table_list) && ((yyval.table_list)=(yyvsp[(3) - (3)].table_list)));
          }
    break;

  case 1258:

/* Line 1455 of yacc.c  */
#line 8538 "sql_yacc.yy"
    { MYSQL_YYABORT_UNLESS((yyvsp[(1) - (3)].table_list) && ((yyval.table_list)=(yyvsp[(3) - (3)].table_list))); }
    break;

  case 1259:

/* Line 1455 of yacc.c  */
#line 8540 "sql_yacc.yy"
    { MYSQL_YYABORT_UNLESS((yyvsp[(1) - (3)].table_list) && ((yyval.table_list)=(yyvsp[(3) - (3)].table_list))); (yyvsp[(3) - (3)].table_list)->straight=1; }
    break;

  case 1260:

/* Line 1455 of yacc.c  */
#line 8543 "sql_yacc.yy"
    {
            MYSQL_YYABORT_UNLESS((yyvsp[(1) - (4)].table_list) && (yyvsp[(3) - (4)].table_list));
            /* Change the current name resolution context to a local context. */
            if (push_new_name_resolution_context(YYTHD, (yyvsp[(1) - (4)].table_list), (yyvsp[(3) - (4)].table_list)))
              MYSQL_YYABORT;
            Select->parsing_place= IN_ON;
          }
    break;

  case 1261:

/* Line 1455 of yacc.c  */
#line 8551 "sql_yacc.yy"
    {
            add_join_on((yyvsp[(3) - (6)].table_list),(yyvsp[(6) - (6)].item));
            Lex->pop_context();
            Select->parsing_place= NO_MATTER;
          }
    break;

  case 1262:

/* Line 1455 of yacc.c  */
#line 8558 "sql_yacc.yy"
    {
            MYSQL_YYABORT_UNLESS((yyvsp[(1) - (4)].table_list) && (yyvsp[(3) - (4)].table_list));
            /* Change the current name resolution context to a local context. */
            if (push_new_name_resolution_context(YYTHD, (yyvsp[(1) - (4)].table_list), (yyvsp[(3) - (4)].table_list)))
              MYSQL_YYABORT;
            Select->parsing_place= IN_ON;
          }
    break;

  case 1263:

/* Line 1455 of yacc.c  */
#line 8566 "sql_yacc.yy"
    {
            (yyvsp[(3) - (6)].table_list)->straight=1;
            add_join_on((yyvsp[(3) - (6)].table_list),(yyvsp[(6) - (6)].item));
            Lex->pop_context();
            Select->parsing_place= NO_MATTER;
          }
    break;

  case 1264:

/* Line 1455 of yacc.c  */
#line 8574 "sql_yacc.yy"
    {
            MYSQL_YYABORT_UNLESS((yyvsp[(1) - (4)].table_list) && (yyvsp[(3) - (4)].table_list));
          }
    break;

  case 1265:

/* Line 1455 of yacc.c  */
#line 8578 "sql_yacc.yy"
    { add_join_natural((yyvsp[(1) - (8)].table_list),(yyvsp[(3) - (8)].table_list),(yyvsp[(7) - (8)].string_list),Select); (yyval.table_list)=(yyvsp[(3) - (8)].table_list); }
    break;

  case 1266:

/* Line 1455 of yacc.c  */
#line 8580 "sql_yacc.yy"
    {
            MYSQL_YYABORT_UNLESS((yyvsp[(1) - (4)].table_list) && ((yyval.table_list)=(yyvsp[(4) - (4)].table_list)));
            add_join_natural((yyvsp[(1) - (4)].table_list),(yyvsp[(4) - (4)].table_list),NULL,Select);
          }
    break;

  case 1267:

/* Line 1455 of yacc.c  */
#line 8588 "sql_yacc.yy"
    {
            MYSQL_YYABORT_UNLESS((yyvsp[(1) - (6)].table_list) && (yyvsp[(5) - (6)].table_list));
            /* Change the current name resolution context to a local context. */
            if (push_new_name_resolution_context(YYTHD, (yyvsp[(1) - (6)].table_list), (yyvsp[(5) - (6)].table_list)))
              MYSQL_YYABORT;
            Select->parsing_place= IN_ON;
          }
    break;

  case 1268:

/* Line 1455 of yacc.c  */
#line 8596 "sql_yacc.yy"
    {
            add_join_on((yyvsp[(5) - (8)].table_list),(yyvsp[(8) - (8)].item));
            Lex->pop_context();
            (yyvsp[(5) - (8)].table_list)->outer_join|=JOIN_TYPE_LEFT;
            (yyval.table_list)=(yyvsp[(5) - (8)].table_list);
            Select->parsing_place= NO_MATTER;
          }
    break;

  case 1269:

/* Line 1455 of yacc.c  */
#line 8604 "sql_yacc.yy"
    {
            MYSQL_YYABORT_UNLESS((yyvsp[(1) - (5)].table_list) && (yyvsp[(5) - (5)].table_list));
          }
    break;

  case 1270:

/* Line 1455 of yacc.c  */
#line 8608 "sql_yacc.yy"
    { 
            add_join_natural((yyvsp[(1) - (10)].table_list),(yyvsp[(5) - (10)].table_list),(yyvsp[(9) - (10)].string_list),Select); 
            (yyvsp[(5) - (10)].table_list)->outer_join|=JOIN_TYPE_LEFT; 
            (yyval.table_list)=(yyvsp[(5) - (10)].table_list); 
          }
    break;

  case 1271:

/* Line 1455 of yacc.c  */
#line 8614 "sql_yacc.yy"
    {
            MYSQL_YYABORT_UNLESS((yyvsp[(1) - (6)].table_list) && (yyvsp[(6) - (6)].table_list));
            add_join_natural((yyvsp[(1) - (6)].table_list),(yyvsp[(6) - (6)].table_list),NULL,Select);
            (yyvsp[(6) - (6)].table_list)->outer_join|=JOIN_TYPE_LEFT;
            (yyval.table_list)=(yyvsp[(6) - (6)].table_list);
          }
    break;

  case 1272:

/* Line 1455 of yacc.c  */
#line 8624 "sql_yacc.yy"
    {
            MYSQL_YYABORT_UNLESS((yyvsp[(1) - (6)].table_list) && (yyvsp[(5) - (6)].table_list));
            /* Change the current name resolution context to a local context. */
            if (push_new_name_resolution_context(YYTHD, (yyvsp[(1) - (6)].table_list), (yyvsp[(5) - (6)].table_list)))
              MYSQL_YYABORT;
            Select->parsing_place= IN_ON;
          }
    break;

  case 1273:

/* Line 1455 of yacc.c  */
#line 8632 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (!((yyval.table_list)= lex->current_select->convert_right_join()))
              MYSQL_YYABORT;
            add_join_on((yyval.table_list), (yyvsp[(8) - (8)].item));
            Lex->pop_context();
            Select->parsing_place= NO_MATTER;
          }
    break;

  case 1274:

/* Line 1455 of yacc.c  */
#line 8641 "sql_yacc.yy"
    {
            MYSQL_YYABORT_UNLESS((yyvsp[(1) - (5)].table_list) && (yyvsp[(5) - (5)].table_list));
          }
    break;

  case 1275:

/* Line 1455 of yacc.c  */
#line 8645 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (!((yyval.table_list)= lex->current_select->convert_right_join()))
              MYSQL_YYABORT;
            add_join_natural((yyval.table_list),(yyvsp[(5) - (10)].table_list),(yyvsp[(9) - (10)].string_list),Select);
          }
    break;

  case 1276:

/* Line 1455 of yacc.c  */
#line 8652 "sql_yacc.yy"
    {
            MYSQL_YYABORT_UNLESS((yyvsp[(1) - (6)].table_list) && (yyvsp[(6) - (6)].table_list));
            add_join_natural((yyvsp[(6) - (6)].table_list),(yyvsp[(1) - (6)].table_list),NULL,Select);
            LEX *lex= Lex;
            if (!((yyval.table_list)= lex->current_select->convert_right_join()))
              MYSQL_YYABORT;
          }
    break;

  case 1277:

/* Line 1455 of yacc.c  */
#line 8662 "sql_yacc.yy"
    {}
    break;

  case 1278:

/* Line 1455 of yacc.c  */
#line 8663 "sql_yacc.yy"
    {}
    break;

  case 1279:

/* Line 1455 of yacc.c  */
#line 8664 "sql_yacc.yy"
    {}
    break;

  case 1280:

/* Line 1455 of yacc.c  */
#line 8669 "sql_yacc.yy"
    {
            SELECT_LEX *sel= Select;
            sel->table_join_options= 0;
          }
    break;

  case 1281:

/* Line 1455 of yacc.c  */
#line 8674 "sql_yacc.yy"
    {
            if (!((yyval.table_list)= Select->add_table_to_list(YYTHD, (yyvsp[(2) - (4)].table), (yyvsp[(3) - (4)].lex_str_ptr),
                                                Select->get_table_join_options(),
                                                Lex->lock_option,
                                                Select->pop_index_hints())))
              MYSQL_YYABORT;
            Select->add_joined_table((yyval.table_list));
          }
    break;

  case 1282:

/* Line 1455 of yacc.c  */
#line 8683 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            SELECT_LEX *sel= lex->current_select;
            if ((yyvsp[(1) - (3)].num))
            {
              if (sel->set_braces(1))
              {
                my_parse_error(ER(ER_SYNTAX_ERROR));
                MYSQL_YYABORT;
              }
              /* select in braces, can't contain global parameters */
              if (sel->master_unit()->fake_select_lex)
                sel->master_unit()->global_parameters=
                   sel->master_unit()->fake_select_lex;
            }
            if ((yyvsp[(2) - (3)].select_lex)->init_nested_join(lex->thd))
              MYSQL_YYABORT;
            (yyval.table_list)= 0;
            /* incomplete derived tables return NULL, we must be
               nested in select_derived rule to be here. */
          }
    break;

  case 1283:

/* Line 1455 of yacc.c  */
#line 8705 "sql_yacc.yy"
    {
            /* Use $2 instead of Lex->current_select as derived table will
               alter value of Lex->current_select. */

            if (!((yyvsp[(3) - (6)].table_list) || (yyvsp[(6) - (6)].lex_str_ptr)) && (yyvsp[(2) - (6)].select_lex)->embedding &&
                !(yyvsp[(2) - (6)].select_lex)->embedding->nested_join->join_list.elements)
            {
              /* we have a derived table ($3 == NULL) but no alias,
                 Since we are nested in further parentheses so we
                 can pass NULL to the outer level parentheses
                 Permits parsing of "((((select ...))) as xyz)" */
              (yyval.table_list)= 0;
            }
            else if (!(yyvsp[(3) - (6)].table_list))
            {
              /* Handle case of derived table, alias may be NULL if there
                 are no outer parentheses, add_table_to_list() will throw
                 error in this case */
              LEX *lex=Lex;
              SELECT_LEX *sel= lex->current_select;
              SELECT_LEX_UNIT *unit= sel->master_unit();
              lex->current_select= sel= unit->outer_select();
              Table_ident *ti= new Table_ident(unit);
              if (ti == NULL)
                MYSQL_YYABORT;
              if (!((yyval.table_list)= sel->add_table_to_list(lex->thd,
                                               ti, (yyvsp[(6) - (6)].lex_str_ptr), 0,
                                               TL_READ)))

                MYSQL_YYABORT;
              sel->add_joined_table((yyval.table_list));
              lex->pop_context();
              lex->nest_level--;
            }
            else if ((yyvsp[(4) - (6)].num) || (yyvsp[(6) - (6)].lex_str_ptr))
            {
              /* simple nested joins cannot have aliases or unions */
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
            else
            {
              /* nested join: FROM (t1 JOIN t2 ...),
                 nest_level is the same as in the outer query */
              (yyval.table_list)= (yyvsp[(3) - (6)].table_list);
            }
          }
    break;

  case 1284:

/* Line 1455 of yacc.c  */
#line 8757 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if ((yyvsp[(1) - (1)].select_lex)->init_nested_join(lex->thd))
              MYSQL_YYABORT;
          }
    break;

  case 1285:

/* Line 1455 of yacc.c  */
#line 8763 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            /* for normal joins, $3 != NULL and end_nested_join() != NULL,
               for derived tables, both must equal NULL */

            if (!((yyval.table_list)= (yyvsp[(1) - (3)].select_lex)->end_nested_join(lex->thd)) && (yyvsp[(3) - (3)].table_list))
              MYSQL_YYABORT;
            if (!(yyvsp[(3) - (3)].table_list) && (yyval.table_list))
            {
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
          }
    break;

  case 1286:

/* Line 1455 of yacc.c  */
#line 8779 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->derived_tables|= DERIVED_SUBQUERY;
            if (!lex->expr_allows_subselect ||
                lex->sql_command == (int)SQLCOM_PURGE)
            {
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
            if (lex->current_select->linkage == GLOBAL_OPTIONS_TYPE ||
                mysql_new_select(lex, 1))
              MYSQL_YYABORT;
            mysql_init_select(lex);
            lex->current_select->linkage= DERIVED_TABLE_TYPE;
            lex->current_select->parsing_place= SELECT_LIST;
          }
    break;

  case 1287:

/* Line 1455 of yacc.c  */
#line 8796 "sql_yacc.yy"
    {
            Select->parsing_place= NO_MATTER;
          }
    break;

  case 1289:

/* Line 1455 of yacc.c  */
#line 8803 "sql_yacc.yy"
    { (yyval.select_lex)= Select; }
    break;

  case 1290:

/* Line 1455 of yacc.c  */
#line 8808 "sql_yacc.yy"
    {
            LEX *lex= Lex;

            if (! lex->parsing_options.allows_derived)
            {
              my_error(ER_VIEW_SELECT_DERIVED, MYF(0));
              MYSQL_YYABORT;
            }

            SELECT_LEX *sel= lex->current_select;
            TABLE_LIST *embedding;
            if (!sel->embedding || sel->end_nested_join(lex->thd))
            {
              /* we are not in parentheses */
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
            embedding= Select->embedding;
            (yyval.num)= embedding &&
                !embedding->nested_join->join_list.elements;
            /* return true if we are deeply nested */
          }
    break;

  case 1291:

/* Line 1455 of yacc.c  */
#line 8833 "sql_yacc.yy"
    {}
    break;

  case 1292:

/* Line 1455 of yacc.c  */
#line 8834 "sql_yacc.yy"
    {}
    break;

  case 1293:

/* Line 1455 of yacc.c  */
#line 8839 "sql_yacc.yy"
    {
            (yyval.num)= global_system_variables.old_mode ? 
                  INDEX_HINT_MASK_JOIN : INDEX_HINT_MASK_ALL; 
          }
    break;

  case 1294:

/* Line 1455 of yacc.c  */
#line 8843 "sql_yacc.yy"
    { (yyval.num)= INDEX_HINT_MASK_JOIN;  }
    break;

  case 1295:

/* Line 1455 of yacc.c  */
#line 8844 "sql_yacc.yy"
    { (yyval.num)= INDEX_HINT_MASK_ORDER; }
    break;

  case 1296:

/* Line 1455 of yacc.c  */
#line 8845 "sql_yacc.yy"
    { (yyval.num)= INDEX_HINT_MASK_GROUP; }
    break;

  case 1297:

/* Line 1455 of yacc.c  */
#line 8849 "sql_yacc.yy"
    { (yyval.index_hint)= INDEX_HINT_FORCE; }
    break;

  case 1298:

/* Line 1455 of yacc.c  */
#line 8850 "sql_yacc.yy"
    { (yyval.index_hint)= INDEX_HINT_IGNORE; }
    break;

  case 1299:

/* Line 1455 of yacc.c  */
#line 8855 "sql_yacc.yy"
    {
            Select->set_index_hint_type((yyvsp[(1) - (3)].index_hint), (yyvsp[(3) - (3)].num));
          }
    break;

  case 1301:

/* Line 1455 of yacc.c  */
#line 8860 "sql_yacc.yy"
    {
            Select->set_index_hint_type(INDEX_HINT_USE, (yyvsp[(3) - (3)].num));
          }
    break;

  case 1306:

/* Line 1455 of yacc.c  */
#line 8873 "sql_yacc.yy"
    { Select->alloc_index_hints(YYTHD); }
    break;

  case 1308:

/* Line 1455 of yacc.c  */
#line 8877 "sql_yacc.yy"
    {  Select->clear_index_hints(); }
    break;

  case 1310:

/* Line 1455 of yacc.c  */
#line 8882 "sql_yacc.yy"
    { Select->add_index_hint(YYTHD, NULL, 0); }
    break;

  case 1311:

/* Line 1455 of yacc.c  */
#line 8883 "sql_yacc.yy"
    {}
    break;

  case 1312:

/* Line 1455 of yacc.c  */
#line 8888 "sql_yacc.yy"
    { Select->add_index_hint(YYTHD, (yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length); }
    break;

  case 1313:

/* Line 1455 of yacc.c  */
#line 8890 "sql_yacc.yy"
    { Select->add_index_hint(YYTHD, (char *)"PRIMARY", 7); }
    break;

  case 1316:

/* Line 1455 of yacc.c  */
#line 8900 "sql_yacc.yy"
    {
            if (!((yyval.string_list)= new List<String>))
              MYSQL_YYABORT;
            String *s= new (YYTHD->mem_root) String((const char *) (yyvsp[(1) - (1)].lex_str).str,
                                                    (yyvsp[(1) - (1)].lex_str).length,
                                                    system_charset_info);
            if (s == NULL)
              MYSQL_YYABORT;
            (yyval.string_list)->push_back(s);
          }
    break;

  case 1317:

/* Line 1455 of yacc.c  */
#line 8911 "sql_yacc.yy"
    {
            String *s= new (YYTHD->mem_root) String((const char *) (yyvsp[(3) - (3)].lex_str).str,
                                                    (yyvsp[(3) - (3)].lex_str).length,
                                                    system_charset_info);
            if (s == NULL)
              MYSQL_YYABORT;
            (yyvsp[(1) - (3)].string_list)->push_back(s);
            (yyval.string_list)= (yyvsp[(1) - (3)].string_list);
          }
    break;

  case 1318:

/* Line 1455 of yacc.c  */
#line 8923 "sql_yacc.yy"
    {}
    break;

  case 1319:

/* Line 1455 of yacc.c  */
#line 8924 "sql_yacc.yy"
    { (yyval.interval)=INTERVAL_DAY_HOUR; }
    break;

  case 1320:

/* Line 1455 of yacc.c  */
#line 8925 "sql_yacc.yy"
    { (yyval.interval)=INTERVAL_DAY_MICROSECOND; }
    break;

  case 1321:

/* Line 1455 of yacc.c  */
#line 8926 "sql_yacc.yy"
    { (yyval.interval)=INTERVAL_DAY_MINUTE; }
    break;

  case 1322:

/* Line 1455 of yacc.c  */
#line 8927 "sql_yacc.yy"
    { (yyval.interval)=INTERVAL_DAY_SECOND; }
    break;

  case 1323:

/* Line 1455 of yacc.c  */
#line 8928 "sql_yacc.yy"
    { (yyval.interval)=INTERVAL_HOUR_MICROSECOND; }
    break;

  case 1324:

/* Line 1455 of yacc.c  */
#line 8929 "sql_yacc.yy"
    { (yyval.interval)=INTERVAL_HOUR_MINUTE; }
    break;

  case 1325:

/* Line 1455 of yacc.c  */
#line 8930 "sql_yacc.yy"
    { (yyval.interval)=INTERVAL_HOUR_SECOND; }
    break;

  case 1326:

/* Line 1455 of yacc.c  */
#line 8931 "sql_yacc.yy"
    { (yyval.interval)=INTERVAL_MINUTE_MICROSECOND; }
    break;

  case 1327:

/* Line 1455 of yacc.c  */
#line 8932 "sql_yacc.yy"
    { (yyval.interval)=INTERVAL_MINUTE_SECOND; }
    break;

  case 1328:

/* Line 1455 of yacc.c  */
#line 8933 "sql_yacc.yy"
    { (yyval.interval)=INTERVAL_SECOND_MICROSECOND; }
    break;

  case 1329:

/* Line 1455 of yacc.c  */
#line 8934 "sql_yacc.yy"
    { (yyval.interval)=INTERVAL_YEAR_MONTH; }
    break;

  case 1330:

/* Line 1455 of yacc.c  */
#line 8938 "sql_yacc.yy"
    {}
    break;

  case 1331:

/* Line 1455 of yacc.c  */
#line 8939 "sql_yacc.yy"
    { 
                                  (yyval.interval_time_st)=INTERVAL_MICROSECOND; 
                                  /*
                                    FRAC_SECOND was mistakenly implemented with
                                    a wrong resolution. According to the ODBC
                                    standard it should be nanoseconds, not
                                    microseconds. Changing it to nanoseconds
                                    in MySQL would mean making TIMESTAMPDIFF
                                    and TIMESTAMPADD to return DECIMAL, since
                                    the return value would be too big for BIGINT
                                    Hence we just deprecate the incorrect
                                    implementation without changing its
                                    resolution.
                                  */
                                  WARN_DEPRECATED(yythd, VER_CELOSIA, "FRAC_SECOND", "MICROSECOND");
                                }
    break;

  case 1332:

/* Line 1455 of yacc.c  */
#line 8958 "sql_yacc.yy"
    { (yyval.interval_time_st)=INTERVAL_DAY; }
    break;

  case 1333:

/* Line 1455 of yacc.c  */
#line 8959 "sql_yacc.yy"
    { (yyval.interval_time_st)=INTERVAL_WEEK; }
    break;

  case 1334:

/* Line 1455 of yacc.c  */
#line 8960 "sql_yacc.yy"
    { (yyval.interval_time_st)=INTERVAL_HOUR; }
    break;

  case 1335:

/* Line 1455 of yacc.c  */
#line 8961 "sql_yacc.yy"
    { (yyval.interval_time_st)=INTERVAL_MINUTE; }
    break;

  case 1336:

/* Line 1455 of yacc.c  */
#line 8962 "sql_yacc.yy"
    { (yyval.interval_time_st)=INTERVAL_MONTH; }
    break;

  case 1337:

/* Line 1455 of yacc.c  */
#line 8963 "sql_yacc.yy"
    { (yyval.interval_time_st)=INTERVAL_QUARTER; }
    break;

  case 1338:

/* Line 1455 of yacc.c  */
#line 8964 "sql_yacc.yy"
    { (yyval.interval_time_st)=INTERVAL_SECOND; }
    break;

  case 1339:

/* Line 1455 of yacc.c  */
#line 8965 "sql_yacc.yy"
    { (yyval.interval_time_st)=INTERVAL_MICROSECOND; }
    break;

  case 1340:

/* Line 1455 of yacc.c  */
#line 8966 "sql_yacc.yy"
    { (yyval.interval_time_st)=INTERVAL_YEAR; }
    break;

  case 1341:

/* Line 1455 of yacc.c  */
#line 8970 "sql_yacc.yy"
    {(yyval.date_time_type)=MYSQL_TIMESTAMP_DATE;}
    break;

  case 1342:

/* Line 1455 of yacc.c  */
#line 8971 "sql_yacc.yy"
    {(yyval.date_time_type)=MYSQL_TIMESTAMP_TIME;}
    break;

  case 1343:

/* Line 1455 of yacc.c  */
#line 8972 "sql_yacc.yy"
    {(yyval.date_time_type)=MYSQL_TIMESTAMP_DATETIME;}
    break;

  case 1344:

/* Line 1455 of yacc.c  */
#line 8973 "sql_yacc.yy"
    {(yyval.date_time_type)=MYSQL_TIMESTAMP_DATETIME;}
    break;

  case 1348:

/* Line 1455 of yacc.c  */
#line 8983 "sql_yacc.yy"
    { (yyval.lex_str_ptr)=0; }
    break;

  case 1349:

/* Line 1455 of yacc.c  */
#line 8985 "sql_yacc.yy"
    {
            (yyval.lex_str_ptr)= (LEX_STRING*) sql_memdup(&(yyvsp[(2) - (2)].lex_str),sizeof(LEX_STRING));
            if ((yyval.lex_str_ptr) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1352:

/* Line 1455 of yacc.c  */
#line 8998 "sql_yacc.yy"
    { Select->where= 0; }
    break;

  case 1353:

/* Line 1455 of yacc.c  */
#line 9000 "sql_yacc.yy"
    {
            Select->parsing_place= IN_WHERE;
          }
    break;

  case 1354:

/* Line 1455 of yacc.c  */
#line 9004 "sql_yacc.yy"
    {
            SELECT_LEX *select= Select;
            select->where= (yyvsp[(3) - (3)].item);
            select->parsing_place= NO_MATTER;
            if ((yyvsp[(3) - (3)].item))
              (yyvsp[(3) - (3)].item)->top_level_item();
          }
    break;

  case 1356:

/* Line 1455 of yacc.c  */
#line 9016 "sql_yacc.yy"
    {
            Select->parsing_place= IN_HAVING;
          }
    break;

  case 1357:

/* Line 1455 of yacc.c  */
#line 9020 "sql_yacc.yy"
    {
            SELECT_LEX *sel= Select;
            sel->having= (yyvsp[(3) - (3)].item);
            sel->parsing_place= NO_MATTER;
            if ((yyvsp[(3) - (3)].item))
              (yyvsp[(3) - (3)].item)->top_level_item();
          }
    break;

  case 1358:

/* Line 1455 of yacc.c  */
#line 9031 "sql_yacc.yy"
    {
            Lex->escape_used= TRUE;
            (yyval.item)= (yyvsp[(2) - (2)].item);
          }
    break;

  case 1359:

/* Line 1455 of yacc.c  */
#line 9036 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            Lex->escape_used= FALSE;
            (yyval.item)= ((thd->variables.sql_mode & MODE_NO_BACKSLASH_ESCAPES) ?
                 new (thd->mem_root) Item_string("", 0, &my_charset_latin1) :
                 new (thd->mem_root) Item_string("\\", 1, &my_charset_latin1));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1362:

/* Line 1455 of yacc.c  */
#line 9058 "sql_yacc.yy"
    { if (add_group_to_list(YYTHD, (yyvsp[(3) - (4)].item),(bool) (yyvsp[(4) - (4)].num))) MYSQL_YYABORT; }
    break;

  case 1363:

/* Line 1455 of yacc.c  */
#line 9060 "sql_yacc.yy"
    { if (add_group_to_list(YYTHD, (yyvsp[(1) - (2)].item),(bool) (yyvsp[(2) - (2)].num))) MYSQL_YYABORT; }
    break;

  case 1364:

/* Line 1455 of yacc.c  */
#line 9064 "sql_yacc.yy"
    {}
    break;

  case 1365:

/* Line 1455 of yacc.c  */
#line 9066 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            if (lex->current_select->linkage == GLOBAL_OPTIONS_TYPE)
            {
              my_error(ER_WRONG_USAGE, MYF(0), "WITH CUBE",
                       "global union parameters");
              MYSQL_YYABORT;
            }
            lex->current_select->olap= CUBE_TYPE;
            my_error(ER_NOT_SUPPORTED_YET, MYF(0), "CUBE");
            MYSQL_YYABORT; /* To be deleted in 5.1 */
          }
    break;

  case 1366:

/* Line 1455 of yacc.c  */
#line 9079 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (lex->current_select->linkage == GLOBAL_OPTIONS_TYPE)
            {
              my_error(ER_WRONG_USAGE, MYF(0), "WITH ROLLUP",
                       "global union parameters");
              MYSQL_YYABORT;
            }
            lex->current_select->olap= ROLLUP_TYPE;
          }
    break;

  case 1370:

/* Line 1455 of yacc.c  */
#line 9106 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            bool ascending= ((yyvsp[(2) - (2)].num) == 1) ? true : false;
            if (add_order_to_list(thd, (yyvsp[(1) - (2)].item), ascending))
              MYSQL_YYABORT;
          }
    break;

  case 1373:

/* Line 1455 of yacc.c  */
#line 9125 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            SELECT_LEX *sel= lex->current_select;
            SELECT_LEX_UNIT *unit= sel-> master_unit();
            if (sel->linkage != GLOBAL_OPTIONS_TYPE &&
                sel->olap != UNSPECIFIED_OLAP_TYPE &&
                (sel->linkage != UNION_TYPE || sel->braces))
            {
              my_error(ER_WRONG_USAGE, MYF(0),
                       "CUBE/ROLLUP", "ORDER BY");
              MYSQL_YYABORT;
            }
            if (lex->sql_command != SQLCOM_ALTER_TABLE && !unit->fake_select_lex)
            {
              /*
                A query of the of the form (SELECT ...) ORDER BY order_list is
                executed in the same way as the query
                SELECT ... ORDER BY order_list
                unless the SELECT construct contains ORDER BY or LIMIT clauses.
                Otherwise we create a fake SELECT_LEX if it has not been created
                yet.
              */
              SELECT_LEX *first_sl= unit->first_select();
              if (!unit->is_union() &&
                  (first_sl->order_list.elements || 
                   first_sl->select_limit) &&            
                  unit->add_fake_select_lex(lex->thd))
                MYSQL_YYABORT;
            }
          }
    break;

  case 1375:

/* Line 1455 of yacc.c  */
#line 9160 "sql_yacc.yy"
    { if (add_order_to_list(YYTHD, (yyvsp[(3) - (4)].item),(bool) (yyvsp[(4) - (4)].num))) MYSQL_YYABORT; }
    break;

  case 1376:

/* Line 1455 of yacc.c  */
#line 9162 "sql_yacc.yy"
    { if (add_order_to_list(YYTHD, (yyvsp[(1) - (2)].item),(bool) (yyvsp[(2) - (2)].num))) MYSQL_YYABORT; }
    break;

  case 1377:

/* Line 1455 of yacc.c  */
#line 9166 "sql_yacc.yy"
    { (yyval.num) =  1; }
    break;

  case 1378:

/* Line 1455 of yacc.c  */
#line 9167 "sql_yacc.yy"
    { (yyval.num) =1; }
    break;

  case 1379:

/* Line 1455 of yacc.c  */
#line 9168 "sql_yacc.yy"
    { (yyval.num) =0; }
    break;

  case 1380:

/* Line 1455 of yacc.c  */
#line 9173 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            SELECT_LEX *sel= lex->current_select;
            sel->offset_limit= 0;
            sel->select_limit= 0;
          }
    break;

  case 1381:

/* Line 1455 of yacc.c  */
#line 9179 "sql_yacc.yy"
    {}
    break;

  case 1382:

/* Line 1455 of yacc.c  */
#line 9183 "sql_yacc.yy"
    {}
    break;

  case 1383:

/* Line 1455 of yacc.c  */
#line 9184 "sql_yacc.yy"
    {}
    break;

  case 1384:

/* Line 1455 of yacc.c  */
#line 9188 "sql_yacc.yy"
    {}
    break;

  case 1385:

/* Line 1455 of yacc.c  */
#line 9193 "sql_yacc.yy"
    {
            SELECT_LEX *sel= Select;
            sel->select_limit= (yyvsp[(1) - (1)].item);
            sel->offset_limit= 0;
            sel->explicit_limit= 1;
          }
    break;

  case 1386:

/* Line 1455 of yacc.c  */
#line 9200 "sql_yacc.yy"
    {
            SELECT_LEX *sel= Select;
            sel->select_limit= (yyvsp[(3) - (3)].item);
            sel->offset_limit= (yyvsp[(1) - (3)].item);
            sel->explicit_limit= 1;
          }
    break;

  case 1387:

/* Line 1455 of yacc.c  */
#line 9207 "sql_yacc.yy"
    {
            SELECT_LEX *sel= Select;
            sel->select_limit= (yyvsp[(1) - (3)].item);
            sel->offset_limit= (yyvsp[(3) - (3)].item);
            sel->explicit_limit= 1;
          }
    break;

  case 1388:

/* Line 1455 of yacc.c  */
#line 9217 "sql_yacc.yy"
    {
          ((Item_param *) (yyvsp[(1) - (1)].item))->limit_clause_param= TRUE;
        }
    break;

  case 1389:

/* Line 1455 of yacc.c  */
#line 9221 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_uint((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1390:

/* Line 1455 of yacc.c  */
#line 9227 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_uint((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1391:

/* Line 1455 of yacc.c  */
#line 9233 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_uint((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1392:

/* Line 1455 of yacc.c  */
#line 9242 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->current_select->select_limit= 0;
          }
    break;

  case 1393:

/* Line 1455 of yacc.c  */
#line 9247 "sql_yacc.yy"
    {
            SELECT_LEX *sel= Select;
            sel->select_limit= (yyvsp[(2) - (2)].item);
            sel->explicit_limit= 1;
          }
    break;

  case 1394:

/* Line 1455 of yacc.c  */
#line 9255 "sql_yacc.yy"
    { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
    break;

  case 1395:

/* Line 1455 of yacc.c  */
#line 9256 "sql_yacc.yy"
    { (yyval.ulong_num)= (ulong) strtol((yyvsp[(1) - (1)].lex_str).str, (char**) 0, 16); }
    break;

  case 1396:

/* Line 1455 of yacc.c  */
#line 9257 "sql_yacc.yy"
    { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
    break;

  case 1397:

/* Line 1455 of yacc.c  */
#line 9258 "sql_yacc.yy"
    { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
    break;

  case 1398:

/* Line 1455 of yacc.c  */
#line 9259 "sql_yacc.yy"
    { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
    break;

  case 1399:

/* Line 1455 of yacc.c  */
#line 9260 "sql_yacc.yy"
    { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
    break;

  case 1400:

/* Line 1455 of yacc.c  */
#line 9264 "sql_yacc.yy"
    { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
    break;

  case 1401:

/* Line 1455 of yacc.c  */
#line 9265 "sql_yacc.yy"
    { (yyval.ulong_num)= (ulong) strtol((yyvsp[(1) - (1)].lex_str).str, (char**) 0, 16); }
    break;

  case 1402:

/* Line 1455 of yacc.c  */
#line 9266 "sql_yacc.yy"
    { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
    break;

  case 1403:

/* Line 1455 of yacc.c  */
#line 9267 "sql_yacc.yy"
    { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
    break;

  case 1404:

/* Line 1455 of yacc.c  */
#line 9268 "sql_yacc.yy"
    { MYSQL_YYABORT; }
    break;

  case 1405:

/* Line 1455 of yacc.c  */
#line 9272 "sql_yacc.yy"
    { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
    break;

  case 1406:

/* Line 1455 of yacc.c  */
#line 9273 "sql_yacc.yy"
    { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
    break;

  case 1407:

/* Line 1455 of yacc.c  */
#line 9274 "sql_yacc.yy"
    { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
    break;

  case 1408:

/* Line 1455 of yacc.c  */
#line 9275 "sql_yacc.yy"
    { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
    break;

  case 1409:

/* Line 1455 of yacc.c  */
#line 9276 "sql_yacc.yy"
    { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
    break;

  case 1410:

/* Line 1455 of yacc.c  */
#line 9280 "sql_yacc.yy"
    { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
    break;

  case 1411:

/* Line 1455 of yacc.c  */
#line 9281 "sql_yacc.yy"
    { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
    break;

  case 1412:

/* Line 1455 of yacc.c  */
#line 9282 "sql_yacc.yy"
    { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
    break;

  case 1413:

/* Line 1455 of yacc.c  */
#line 9283 "sql_yacc.yy"
    { MYSQL_YYABORT; }
    break;

  case 1414:

/* Line 1455 of yacc.c  */
#line 9288 "sql_yacc.yy"
    { my_parse_error(ER(ER_ONLY_INTEGERS_ALLOWED)); }
    break;

  case 1418:

/* Line 1455 of yacc.c  */
#line 9299 "sql_yacc.yy"
    {
            LEX *lex=Lex;

            if (! lex->parsing_options.allows_select_procedure)
            {
              my_error(ER_VIEW_SELECT_CLAUSE, MYF(0), "PROCEDURE");
              MYSQL_YYABORT;
            }

            if (&lex->select_lex != lex->current_select)
            {
              my_error(ER_WRONG_USAGE, MYF(0), "PROCEDURE", "subquery");
              MYSQL_YYABORT;
            }
            lex->proc_list.elements=0;
            lex->proc_list.first=0;
            lex->proc_list.next= &lex->proc_list.first;
            Item_field *item= new (YYTHD->mem_root)
                                Item_field(&lex->current_select->context,
                                           NULL, NULL, (yyvsp[(2) - (2)].lex_str).str);
            if (item == NULL)
              MYSQL_YYABORT;
            if (add_proc_to_list(lex->thd, item))
              MYSQL_YYABORT;
            Lex->uncacheable(UNCACHEABLE_SIDEEFFECT);
          }
    break;

  case 1420:

/* Line 1455 of yacc.c  */
#line 9329 "sql_yacc.yy"
    {}
    break;

  case 1421:

/* Line 1455 of yacc.c  */
#line 9330 "sql_yacc.yy"
    {}
    break;

  case 1424:

/* Line 1455 of yacc.c  */
#line 9340 "sql_yacc.yy"
    {
            THD *thd= YYTHD;

            if (add_proc_to_list(thd, (yyvsp[(2) - (3)].item)))
              MYSQL_YYABORT;
            if (!(yyvsp[(2) - (3)].item)->name)
              (yyvsp[(2) - (3)].item)->set_name((yyvsp[(1) - (3)].simple_string), (uint) ((yyvsp[(3) - (3)].simple_string) - (yyvsp[(1) - (3)].simple_string)), thd->charset());
          }
    break;

  case 1425:

/* Line 1455 of yacc.c  */
#line 9351 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            if (!lex->describe && 
                  (!(lex->result= new select_dumpvar(lex->nest_level))))
              MYSQL_YYABORT;
          }
    break;

  case 1426:

/* Line 1455 of yacc.c  */
#line 9358 "sql_yacc.yy"
    {}
    break;

  case 1428:

/* Line 1455 of yacc.c  */
#line 9363 "sql_yacc.yy"
    {}
    break;

  case 1429:

/* Line 1455 of yacc.c  */
#line 9368 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            if (lex->result) 
            {
              my_var *var= new my_var((yyvsp[(2) - (2)].lex_str),0,0,(enum_field_types)0);
              if (var == NULL)
                MYSQL_YYABORT;
              ((select_dumpvar *)lex->result)->var_list.push_back(var);
            }
            else
            {
              /*
                The parser won't create select_result instance only
                if it's an EXPLAIN.
              */
              DBUG_ASSERT(lex->describe);
            }
          }
    break;

  case 1430:

/* Line 1455 of yacc.c  */
#line 9387 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            sp_variable_t *t;

            if (!lex->spcont || !(t=lex->spcont->find_variable(&(yyvsp[(1) - (1)].lex_str))))
            {
              my_error(ER_SP_UNDECLARED_VAR, MYF(0), (yyvsp[(1) - (1)].lex_str).str);
              MYSQL_YYABORT;
            }
            if (lex->result)
            {
              my_var *var= new my_var((yyvsp[(1) - (1)].lex_str),1,t->offset,t->type);
              if (var == NULL)
                MYSQL_YYABORT;
              ((select_dumpvar *)lex->result)->var_list.push_back(var);
#ifndef DBUG_OFF
              var->sp= lex->sphead;
#endif
            }
            else
            {
              /*
                The parser won't create select_result instance only
                if it's an EXPLAIN.
              */
              DBUG_ASSERT(lex->describe);
            }
          }
    break;

  case 1431:

/* Line 1455 of yacc.c  */
#line 9419 "sql_yacc.yy"
    {
            if (! Lex->parsing_options.allows_select_into)
            {
              my_error(ER_VIEW_SELECT_CLAUSE, MYF(0), "INTO");
              MYSQL_YYABORT;
            }
          }
    break;

  case 1433:

/* Line 1455 of yacc.c  */
#line 9431 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->uncacheable(UNCACHEABLE_SIDEEFFECT);
            if (!(lex->exchange= new sql_exchange((yyvsp[(2) - (2)].lex_str).str, 0)) ||
                !(lex->result= new select_export(lex->exchange, lex->nest_level)))
              MYSQL_YYABORT;
          }
    break;

  case 1434:

/* Line 1455 of yacc.c  */
#line 9439 "sql_yacc.yy"
    { Lex->exchange->cs= (yyvsp[(4) - (4)].charset); }
    break;

  case 1436:

/* Line 1455 of yacc.c  */
#line 9442 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            if (!lex->describe)
            {
              lex->uncacheable(UNCACHEABLE_SIDEEFFECT);
              if (!(lex->exchange= new sql_exchange((yyvsp[(2) - (2)].lex_str).str,1)))
                MYSQL_YYABORT;
              if (!(lex->result= new select_dump(lex->exchange, lex->nest_level)))
                MYSQL_YYABORT;
            }
          }
    break;

  case 1437:

/* Line 1455 of yacc.c  */
#line 9454 "sql_yacc.yy"
    {
            Lex->uncacheable(UNCACHEABLE_SIDEEFFECT);
          }
    break;

  case 1438:

/* Line 1455 of yacc.c  */
#line 9465 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command = SQLCOM_DO;
            mysql_init_select(lex);
          }
    break;

  case 1439:

/* Line 1455 of yacc.c  */
#line 9471 "sql_yacc.yy"
    {
            Lex->insert_list= (yyvsp[(3) - (3)].item_list);
          }
    break;

  case 1440:

/* Line 1455 of yacc.c  */
#line 9482 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command = SQLCOM_DROP_TABLE;
            lex->drop_temporary= (yyvsp[(2) - (6)].num);
            lex->drop_if_exists= (yyvsp[(4) - (6)].num);
          }
    break;

  case 1441:

/* Line 1455 of yacc.c  */
#line 9488 "sql_yacc.yy"
    {}
    break;

  case 1442:

/* Line 1455 of yacc.c  */
#line 9489 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            Alter_drop *ad= new Alter_drop(Alter_drop::KEY, (yyvsp[(3) - (6)].lex_str).str);
            if (ad == NULL)
              MYSQL_YYABORT;
            lex->sql_command= SQLCOM_DROP_INDEX;
            lex->alter_info.reset();
            lex->alter_info.flags= ALTER_DROP_INDEX;
            lex->alter_info.drop_list.push_back(ad);
            if (!lex->current_select->add_table_to_list(lex->thd, (yyvsp[(5) - (6)].table), NULL,
                                                        TL_OPTION_UPDATING))
              MYSQL_YYABORT;
          }
    break;

  case 1443:

/* Line 1455 of yacc.c  */
#line 9503 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command= SQLCOM_DROP_DB;
            lex->drop_if_exists=(yyvsp[(3) - (4)].num);
            lex->name= (yyvsp[(4) - (4)].lex_str);
          }
    break;

  case 1444:

/* Line 1455 of yacc.c  */
#line 9510 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            sp_name *spname;
            if ((yyvsp[(4) - (6)].lex_str).str && check_db_name(&(yyvsp[(4) - (6)].lex_str)))
            {
               my_error(ER_WRONG_DB_NAME, MYF(0), (yyvsp[(4) - (6)].lex_str).str);
               MYSQL_YYABORT;
            }
            if (lex->sphead)
            {
              my_error(ER_SP_NO_DROP_SP, MYF(0), "FUNCTION");
              MYSQL_YYABORT;
            }
            lex->sql_command = SQLCOM_DROP_FUNCTION;
            lex->drop_if_exists= (yyvsp[(3) - (6)].num);
            spname= new sp_name((yyvsp[(4) - (6)].lex_str), (yyvsp[(6) - (6)].lex_str), true);
            if (spname == NULL)
              MYSQL_YYABORT;
            spname->init_qname(thd);
            lex->spname= spname;
          }
    break;

  case 1445:

/* Line 1455 of yacc.c  */
#line 9533 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            LEX_STRING db= {0, 0};
            sp_name *spname;
            if (lex->sphead)
            {
              my_error(ER_SP_NO_DROP_SP, MYF(0), "FUNCTION");
              MYSQL_YYABORT;
            }
            if (thd->db && lex->copy_db_to(&db.str, &db.length))
              MYSQL_YYABORT;
            lex->sql_command = SQLCOM_DROP_FUNCTION;
            lex->drop_if_exists= (yyvsp[(3) - (4)].num);
            spname= new sp_name(db, (yyvsp[(4) - (4)].lex_str), false);
            if (spname == NULL)
              MYSQL_YYABORT;
            spname->init_qname(thd);
            lex->spname= spname;
          }
    break;

  case 1446:

/* Line 1455 of yacc.c  */
#line 9554 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            if (lex->sphead)
            {
              my_error(ER_SP_NO_DROP_SP, MYF(0), "PROCEDURE");
              MYSQL_YYABORT;
            }
            lex->sql_command = SQLCOM_DROP_PROCEDURE;
            lex->drop_if_exists= (yyvsp[(3) - (4)].num);
            lex->spname= (yyvsp[(4) - (4)].spname);
          }
    break;

  case 1447:

/* Line 1455 of yacc.c  */
#line 9566 "sql_yacc.yy"
    {
            Lex->sql_command = SQLCOM_DROP_USER;
          }
    break;

  case 1448:

/* Line 1455 of yacc.c  */
#line 9570 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_DROP_VIEW;
            lex->drop_if_exists= (yyvsp[(3) - (5)].num);
          }
    break;

  case 1449:

/* Line 1455 of yacc.c  */
#line 9576 "sql_yacc.yy"
    {
            Lex->drop_if_exists= (yyvsp[(3) - (4)].num);
            Lex->spname= (yyvsp[(4) - (4)].spname);
            Lex->sql_command = SQLCOM_DROP_EVENT;
          }
    break;

  case 1450:

/* Line 1455 of yacc.c  */
#line 9582 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_DROP_TRIGGER;
            lex->drop_if_exists= (yyvsp[(3) - (4)].num);
            lex->spname= (yyvsp[(4) - (4)].spname);
          }
    break;

  case 1451:

/* Line 1455 of yacc.c  */
#line 9589 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->ts_cmd_type= DROP_TABLESPACE;
          }
    break;

  case 1452:

/* Line 1455 of yacc.c  */
#line 9594 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->ts_cmd_type= DROP_LOGFILE_GROUP;
          }
    break;

  case 1453:

/* Line 1455 of yacc.c  */
#line 9599 "sql_yacc.yy"
    {
            Lex->sql_command = SQLCOM_DROP_SERVER;
            Lex->drop_if_exists= (yyvsp[(3) - (4)].num);
            Lex->server_options.server_name= (yyvsp[(4) - (4)].lex_str).str;
            Lex->server_options.server_name_length= (yyvsp[(4) - (4)].lex_str).length;
          }
    break;

  case 1456:

/* Line 1455 of yacc.c  */
#line 9614 "sql_yacc.yy"
    {
            if (!Select->add_table_to_list(YYTHD, (yyvsp[(1) - (1)].table), NULL, TL_OPTION_UPDATING))
              MYSQL_YYABORT;
          }
    break;

  case 1459:

/* Line 1455 of yacc.c  */
#line 9627 "sql_yacc.yy"
    {
            if (!Select->add_table_to_list(YYTHD, (yyvsp[(1) - (1)].table), NULL,
                                           TL_OPTION_UPDATING | TL_OPTION_ALIAS,
                                           Lex->lock_option ))
              MYSQL_YYABORT;
          }
    break;

  case 1460:

/* Line 1455 of yacc.c  */
#line 9636 "sql_yacc.yy"
    { (yyval.num)= 0; }
    break;

  case 1461:

/* Line 1455 of yacc.c  */
#line 9637 "sql_yacc.yy"
    { (yyval.num)= 1; }
    break;

  case 1462:

/* Line 1455 of yacc.c  */
#line 9641 "sql_yacc.yy"
    { (yyval.num)= 0; }
    break;

  case 1463:

/* Line 1455 of yacc.c  */
#line 9642 "sql_yacc.yy"
    { (yyval.num)= 1; }
    break;

  case 1464:

/* Line 1455 of yacc.c  */
#line 9650 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_INSERT;
            lex->duplicates= DUP_ERROR; 
            mysql_init_select(lex);
            /* for subselects */
            lex->lock_option= TL_READ_DEFAULT;
          }
    break;

  case 1465:

/* Line 1455 of yacc.c  */
#line 9660 "sql_yacc.yy"
    {
            Select->set_lock_for_tables((yyvsp[(3) - (5)].lock_type));
            Lex->current_select= &Lex->select_lex;
          }
    break;

  case 1466:

/* Line 1455 of yacc.c  */
#line 9665 "sql_yacc.yy"
    {}
    break;

  case 1467:

/* Line 1455 of yacc.c  */
#line 9670 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command = SQLCOM_REPLACE;
            lex->duplicates= DUP_REPLACE;
            mysql_init_select(lex);
          }
    break;

  case 1468:

/* Line 1455 of yacc.c  */
#line 9677 "sql_yacc.yy"
    {
            Select->set_lock_for_tables((yyvsp[(3) - (4)].lock_type));
            Lex->current_select= &Lex->select_lex;
          }
    break;

  case 1469:

/* Line 1455 of yacc.c  */
#line 9682 "sql_yacc.yy"
    {}
    break;

  case 1470:

/* Line 1455 of yacc.c  */
#line 9687 "sql_yacc.yy"
    {
#ifdef HAVE_QUERY_CACHE
            /*
              If it is SP we do not allow insert optimisation whan result of
              insert visible only after the table unlocking but everyone can
              read table.
            */
            (yyval.lock_type)= (Lex->sphead ? TL_WRITE_DEFAULT : TL_WRITE_CONCURRENT_INSERT);
#else
            (yyval.lock_type)= TL_WRITE_CONCURRENT_INSERT;
#endif
          }
    break;

  case 1471:

/* Line 1455 of yacc.c  */
#line 9699 "sql_yacc.yy"
    { (yyval.lock_type)= TL_WRITE_LOW_PRIORITY; }
    break;

  case 1472:

/* Line 1455 of yacc.c  */
#line 9700 "sql_yacc.yy"
    { (yyval.lock_type)= TL_WRITE_DELAYED; }
    break;

  case 1473:

/* Line 1455 of yacc.c  */
#line 9701 "sql_yacc.yy"
    { (yyval.lock_type)= TL_WRITE; }
    break;

  case 1474:

/* Line 1455 of yacc.c  */
#line 9705 "sql_yacc.yy"
    { (yyval.lock_type)= (yyvsp[(1) - (1)].lock_type); }
    break;

  case 1475:

/* Line 1455 of yacc.c  */
#line 9706 "sql_yacc.yy"
    { (yyval.lock_type)= TL_WRITE_DELAYED; }
    break;

  case 1476:

/* Line 1455 of yacc.c  */
#line 9710 "sql_yacc.yy"
    {}
    break;

  case 1477:

/* Line 1455 of yacc.c  */
#line 9711 "sql_yacc.yy"
    {}
    break;

  case 1478:

/* Line 1455 of yacc.c  */
#line 9716 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->field_list.empty();
            lex->many_values.empty();
            lex->insert_list=0;
          }
    break;

  case 1479:

/* Line 1455 of yacc.c  */
#line 9724 "sql_yacc.yy"
    {}
    break;

  case 1480:

/* Line 1455 of yacc.c  */
#line 9725 "sql_yacc.yy"
    {}
    break;

  case 1481:

/* Line 1455 of yacc.c  */
#line 9726 "sql_yacc.yy"
    {}
    break;

  case 1482:

/* Line 1455 of yacc.c  */
#line 9728 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            if (!(lex->insert_list = new List_item) ||
                lex->many_values.push_back(lex->insert_list))
              MYSQL_YYABORT;
          }
    break;

  case 1484:

/* Line 1455 of yacc.c  */
#line 9738 "sql_yacc.yy"
    { Lex->field_list.push_back((yyvsp[(3) - (3)].item)); }
    break;

  case 1485:

/* Line 1455 of yacc.c  */
#line 9739 "sql_yacc.yy"
    { Lex->field_list.push_back((yyvsp[(1) - (1)].item)); }
    break;

  case 1486:

/* Line 1455 of yacc.c  */
#line 9743 "sql_yacc.yy"
    {}
    break;

  case 1487:

/* Line 1455 of yacc.c  */
#line 9744 "sql_yacc.yy"
    {}
    break;

  case 1488:

/* Line 1455 of yacc.c  */
#line 9746 "sql_yacc.yy"
    { Select->set_braces(0);}
    break;

  case 1489:

/* Line 1455 of yacc.c  */
#line 9747 "sql_yacc.yy"
    {}
    break;

  case 1490:

/* Line 1455 of yacc.c  */
#line 9749 "sql_yacc.yy"
    { Select->set_braces(1);}
    break;

  case 1491:

/* Line 1455 of yacc.c  */
#line 9750 "sql_yacc.yy"
    {}
    break;

  case 1496:

/* Line 1455 of yacc.c  */
#line 9765 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            if (lex->field_list.push_back((yyvsp[(1) - (3)].item)) ||
                lex->insert_list->push_back((yyvsp[(3) - (3)].item)))
              MYSQL_YYABORT;
          }
    break;

  case 1497:

/* Line 1455 of yacc.c  */
#line 9774 "sql_yacc.yy"
    {}
    break;

  case 1498:

/* Line 1455 of yacc.c  */
#line 9775 "sql_yacc.yy"
    {}
    break;

  case 1499:

/* Line 1455 of yacc.c  */
#line 9779 "sql_yacc.yy"
    {}
    break;

  case 1500:

/* Line 1455 of yacc.c  */
#line 9780 "sql_yacc.yy"
    {}
    break;

  case 1501:

/* Line 1455 of yacc.c  */
#line 9785 "sql_yacc.yy"
    {
              if (!(Lex->insert_list = new List_item))
                MYSQL_YYABORT;
          }
    break;

  case 1502:

/* Line 1455 of yacc.c  */
#line 9790 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            if (lex->many_values.push_back(lex->insert_list))
              MYSQL_YYABORT;
          }
    break;

  case 1503:

/* Line 1455 of yacc.c  */
#line 9798 "sql_yacc.yy"
    {}
    break;

  case 1505:

/* Line 1455 of yacc.c  */
#line 9804 "sql_yacc.yy"
    {
            if (Lex->insert_list->push_back((yyvsp[(3) - (3)].item)))
              MYSQL_YYABORT;
          }
    break;

  case 1506:

/* Line 1455 of yacc.c  */
#line 9809 "sql_yacc.yy"
    {
            if (Lex->insert_list->push_back((yyvsp[(1) - (1)].item)))
              MYSQL_YYABORT;
          }
    break;

  case 1507:

/* Line 1455 of yacc.c  */
#line 9816 "sql_yacc.yy"
    { (yyval.item)= (yyvsp[(1) - (1)].item);}
    break;

  case 1508:

/* Line 1455 of yacc.c  */
#line 9818 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_default_value(Lex->current_context());
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1510:

/* Line 1455 of yacc.c  */
#line 9827 "sql_yacc.yy"
    { Lex->duplicates= DUP_UPDATE; }
    break;

  case 1512:

/* Line 1455 of yacc.c  */
#line 9835 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            mysql_init_select(lex);
            lex->sql_command= SQLCOM_UPDATE;
            lex->lock_option= TL_UNLOCK; /* Will be set later */
            lex->duplicates= DUP_ERROR; 
          }
    break;

  case 1513:

/* Line 1455 of yacc.c  */
#line 9844 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (lex->select_lex.table_list.elements > 1)
              lex->sql_command= SQLCOM_UPDATE_MULTI;
            else if (lex->select_lex.get_table_list()->derived)
            {
              /* it is single table update and it is update of derived table */
              my_error(ER_NON_UPDATABLE_TABLE, MYF(0),
                       lex->select_lex.get_table_list()->alias, "UPDATE");
              MYSQL_YYABORT;
            }
            /*
              In case of multi-update setting write lock for all tables may
              be too pessimistic. We will decrease lock level if possible in
              mysql_multi_update().
            */
            Select->set_lock_for_tables((yyvsp[(3) - (7)].lock_type));
          }
    break;

  case 1514:

/* Line 1455 of yacc.c  */
#line 9862 "sql_yacc.yy"
    {}
    break;

  case 1517:

/* Line 1455 of yacc.c  */
#line 9872 "sql_yacc.yy"
    {
            if (add_item_to_list(YYTHD, (yyvsp[(1) - (3)].item)) || add_value_to_list(YYTHD, (yyvsp[(3) - (3)].item)))
              MYSQL_YYABORT;
          }
    break;

  case 1520:

/* Line 1455 of yacc.c  */
#line 9885 "sql_yacc.yy"
    {
          LEX *lex= Lex;
          if (lex->update_list.push_back((yyvsp[(1) - (3)].item)) || 
              lex->value_list.push_back((yyvsp[(3) - (3)].item)))
              MYSQL_YYABORT;
          }
    break;

  case 1521:

/* Line 1455 of yacc.c  */
#line 9894 "sql_yacc.yy"
    { (yyval.lock_type)= TL_WRITE_DEFAULT; }
    break;

  case 1522:

/* Line 1455 of yacc.c  */
#line 9895 "sql_yacc.yy"
    { (yyval.lock_type)= TL_WRITE_LOW_PRIORITY; }
    break;

  case 1523:

/* Line 1455 of yacc.c  */
#line 9902 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_DELETE;
            mysql_init_select(lex);
            lex->lock_option= TL_WRITE_DEFAULT;
            lex->ignore= 0;
            lex->select_lex.init_order();
          }
    break;

  case 1524:

/* Line 1455 of yacc.c  */
#line 9910 "sql_yacc.yy"
    {}
    break;

  case 1525:

/* Line 1455 of yacc.c  */
#line 9915 "sql_yacc.yy"
    {
            if (!Select->add_table_to_list(YYTHD, (yyvsp[(2) - (2)].table), NULL, TL_OPTION_UPDATING,
                                           Lex->lock_option))
              MYSQL_YYABORT;
          }
    break;

  case 1526:

/* Line 1455 of yacc.c  */
#line 9921 "sql_yacc.yy"
    {}
    break;

  case 1527:

/* Line 1455 of yacc.c  */
#line 9923 "sql_yacc.yy"
    { mysql_init_multi_delete(Lex); }
    break;

  case 1528:

/* Line 1455 of yacc.c  */
#line 9925 "sql_yacc.yy"
    { 
            if (multi_delete_set_locks_and_link_aux_tables(Lex))
              MYSQL_YYABORT;
          }
    break;

  case 1529:

/* Line 1455 of yacc.c  */
#line 9930 "sql_yacc.yy"
    { mysql_init_multi_delete(Lex); }
    break;

  case 1530:

/* Line 1455 of yacc.c  */
#line 9932 "sql_yacc.yy"
    { 
            if (multi_delete_set_locks_and_link_aux_tables(Lex))
              MYSQL_YYABORT;
          }
    break;

  case 1531:

/* Line 1455 of yacc.c  */
#line 9939 "sql_yacc.yy"
    {}
    break;

  case 1532:

/* Line 1455 of yacc.c  */
#line 9940 "sql_yacc.yy"
    {}
    break;

  case 1533:

/* Line 1455 of yacc.c  */
#line 9945 "sql_yacc.yy"
    {
            Table_ident *ti= new Table_ident((yyvsp[(1) - (3)].lex_str));
            if (ti == NULL)
              MYSQL_YYABORT;
            if (!Select->add_table_to_list(YYTHD,
                                           ti,
                                           (yyvsp[(3) - (3)].lex_str_ptr),
                                           TL_OPTION_UPDATING | TL_OPTION_ALIAS,
                                           Lex->lock_option))
              MYSQL_YYABORT;
          }
    break;

  case 1534:

/* Line 1455 of yacc.c  */
#line 9957 "sql_yacc.yy"
    {
            Table_ident *ti= new Table_ident(YYTHD, (yyvsp[(1) - (5)].lex_str), (yyvsp[(3) - (5)].lex_str), 0);
            if (ti == NULL)
              MYSQL_YYABORT;
            if (!Select->add_table_to_list(YYTHD,
                                           ti,
                                           (yyvsp[(5) - (5)].lex_str_ptr), 
                                           TL_OPTION_UPDATING | TL_OPTION_ALIAS,
                                           Lex->lock_option))
              MYSQL_YYABORT;
          }
    break;

  case 1535:

/* Line 1455 of yacc.c  */
#line 9971 "sql_yacc.yy"
    {}
    break;

  case 1536:

/* Line 1455 of yacc.c  */
#line 9972 "sql_yacc.yy"
    {}
    break;

  case 1537:

/* Line 1455 of yacc.c  */
#line 9976 "sql_yacc.yy"
    {}
    break;

  case 1538:

/* Line 1455 of yacc.c  */
#line 9977 "sql_yacc.yy"
    {}
    break;

  case 1539:

/* Line 1455 of yacc.c  */
#line 9981 "sql_yacc.yy"
    { Select->options|= OPTION_QUICK; }
    break;

  case 1540:

/* Line 1455 of yacc.c  */
#line 9982 "sql_yacc.yy"
    { Lex->lock_option= TL_WRITE_LOW_PRIORITY; }
    break;

  case 1541:

/* Line 1455 of yacc.c  */
#line 9983 "sql_yacc.yy"
    { Lex->ignore= 1; }
    break;

  case 1542:

/* Line 1455 of yacc.c  */
#line 9988 "sql_yacc.yy"
    {
            LEX* lex= Lex;
            lex->sql_command= SQLCOM_TRUNCATE;
            lex->select_lex.options= 0;
            lex->select_lex.sql_cache= SELECT_LEX::SQL_CACHE_UNSPECIFIED;
            lex->select_lex.init_order();
          }
    break;

  case 1549:

/* Line 1455 of yacc.c  */
#line 10012 "sql_yacc.yy"
    {
      Lex->profile_options|= PROFILE_CPU;
    }
    break;

  case 1550:

/* Line 1455 of yacc.c  */
#line 10016 "sql_yacc.yy"
    {
      Lex->profile_options|= PROFILE_MEMORY;
    }
    break;

  case 1551:

/* Line 1455 of yacc.c  */
#line 10020 "sql_yacc.yy"
    {
      Lex->profile_options|= PROFILE_BLOCK_IO;
    }
    break;

  case 1552:

/* Line 1455 of yacc.c  */
#line 10024 "sql_yacc.yy"
    {
      Lex->profile_options|= PROFILE_CONTEXT;
    }
    break;

  case 1553:

/* Line 1455 of yacc.c  */
#line 10028 "sql_yacc.yy"
    {
      Lex->profile_options|= PROFILE_PAGE_FAULTS;
    }
    break;

  case 1554:

/* Line 1455 of yacc.c  */
#line 10032 "sql_yacc.yy"
    {
      Lex->profile_options|= PROFILE_IPC;
    }
    break;

  case 1555:

/* Line 1455 of yacc.c  */
#line 10036 "sql_yacc.yy"
    {
      Lex->profile_options|= PROFILE_SWAPS;
    }
    break;

  case 1556:

/* Line 1455 of yacc.c  */
#line 10040 "sql_yacc.yy"
    {
      Lex->profile_options|= PROFILE_SOURCE;
    }
    break;

  case 1557:

/* Line 1455 of yacc.c  */
#line 10044 "sql_yacc.yy"
    {
      Lex->profile_options|= PROFILE_ALL;
    }
    break;

  case 1558:

/* Line 1455 of yacc.c  */
#line 10051 "sql_yacc.yy"
    {
      Lex->profile_query_id= 0;
    }
    break;

  case 1559:

/* Line 1455 of yacc.c  */
#line 10055 "sql_yacc.yy"
    {
      Lex->profile_query_id= atoi((yyvsp[(3) - (3)].lex_str).str);
    }
    break;

  case 1560:

/* Line 1455 of yacc.c  */
#line 10064 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->wild=0;
            lex->lock_option= TL_READ;
            mysql_init_select(lex);
            lex->current_select->parsing_place= SELECT_LIST;
            bzero((char*) &lex->create_info,sizeof(lex->create_info));
          }
    break;

  case 1561:

/* Line 1455 of yacc.c  */
#line 10073 "sql_yacc.yy"
    {}
    break;

  case 1562:

/* Line 1455 of yacc.c  */
#line 10078 "sql_yacc.yy"
    {
             LEX *lex= Lex;
             lex->sql_command= SQLCOM_SHOW_DATABASES;
             if (prepare_schema_table(YYTHD, lex, 0, SCH_SCHEMATA))
               MYSQL_YYABORT;
           }
    break;

  case 1563:

/* Line 1455 of yacc.c  */
#line 10085 "sql_yacc.yy"
    {
             LEX *lex= Lex;
             lex->sql_command= SQLCOM_SHOW_TABLES;
             lex->select_lex.db= (yyvsp[(3) - (4)].simple_string);
             if (prepare_schema_table(YYTHD, lex, 0, SCH_TABLE_NAMES))
               MYSQL_YYABORT;
           }
    break;

  case 1564:

/* Line 1455 of yacc.c  */
#line 10093 "sql_yacc.yy"
    {
             LEX *lex= Lex;
             lex->sql_command= SQLCOM_SHOW_TRIGGERS;
             lex->select_lex.db= (yyvsp[(3) - (4)].simple_string);
             if (prepare_schema_table(YYTHD, lex, 0, SCH_TRIGGERS))
               MYSQL_YYABORT;
           }
    break;

  case 1565:

/* Line 1455 of yacc.c  */
#line 10101 "sql_yacc.yy"
    {
             LEX *lex= Lex;
             lex->sql_command= SQLCOM_SHOW_EVENTS;
             lex->select_lex.db= (yyvsp[(2) - (3)].simple_string);
             if (prepare_schema_table(YYTHD, lex, 0, SCH_EVENTS))
               MYSQL_YYABORT;
           }
    break;

  case 1566:

/* Line 1455 of yacc.c  */
#line 10109 "sql_yacc.yy"
    {
             LEX *lex= Lex;
             lex->sql_command= SQLCOM_SHOW_TABLE_STATUS;
             lex->select_lex.db= (yyvsp[(3) - (4)].simple_string);
             if (prepare_schema_table(YYTHD, lex, 0, SCH_TABLES))
               MYSQL_YYABORT;
           }
    break;

  case 1567:

/* Line 1455 of yacc.c  */
#line 10117 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_SHOW_OPEN_TABLES;
            lex->select_lex.db= (yyvsp[(3) - (4)].simple_string);
            if (prepare_schema_table(YYTHD, lex, 0, SCH_OPEN_TABLES))
              MYSQL_YYABORT;
          }
    break;

  case 1568:

/* Line 1455 of yacc.c  */
#line 10125 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            WARN_DEPRECATED(yythd, "6.0", "SHOW PLUGIN", "'SHOW PLUGINS'");
            lex->sql_command= SQLCOM_SHOW_PLUGINS;
            if (prepare_schema_table(YYTHD, lex, 0, SCH_PLUGINS))
              MYSQL_YYABORT;
          }
    break;

  case 1569:

/* Line 1455 of yacc.c  */
#line 10133 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_SHOW_PLUGINS;
            if (prepare_schema_table(YYTHD, lex, 0, SCH_PLUGINS))
              MYSQL_YYABORT;
          }
    break;

  case 1570:

/* Line 1455 of yacc.c  */
#line 10140 "sql_yacc.yy"
    { Lex->create_info.db_type= (yyvsp[(2) - (3)].db_type); }
    break;

  case 1571:

/* Line 1455 of yacc.c  */
#line 10142 "sql_yacc.yy"
    { Lex->create_info.db_type= NULL; }
    break;

  case 1572:

/* Line 1455 of yacc.c  */
#line 10144 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_SHOW_FIELDS;
            if ((yyvsp[(5) - (6)].simple_string))
              (yyvsp[(4) - (6)].table)->change_db((yyvsp[(5) - (6)].simple_string));
            if (prepare_schema_table(YYTHD, lex, (yyvsp[(4) - (6)].table), SCH_COLUMNS))
              MYSQL_YYABORT;
          }
    break;

  case 1573:

/* Line 1455 of yacc.c  */
#line 10159 "sql_yacc.yy"
    {
            Lex->sql_command = SQLCOM_SHOW_NEW_MASTER;
            Lex->mi.log_file_name = (yyvsp[(8) - (16)].lex_str).str;
            Lex->mi.pos = (yyvsp[(12) - (16)].ulonglong_number);
            Lex->mi.server_id = (yyvsp[(16) - (16)].ulong_num);
          }
    break;

  case 1574:

/* Line 1455 of yacc.c  */
#line 10166 "sql_yacc.yy"
    {
            Lex->sql_command = SQLCOM_SHOW_BINLOGS;
          }
    break;

  case 1575:

/* Line 1455 of yacc.c  */
#line 10170 "sql_yacc.yy"
    {
            Lex->sql_command = SQLCOM_SHOW_SLAVE_HOSTS;
          }
    break;

  case 1576:

/* Line 1455 of yacc.c  */
#line 10174 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_SHOW_BINLOG_EVENTS;
          }
    break;

  case 1578:

/* Line 1455 of yacc.c  */
#line 10179 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_SHOW_KEYS;
            if ((yyvsp[(4) - (5)].simple_string))
              (yyvsp[(3) - (5)].table)->change_db((yyvsp[(4) - (5)].simple_string));
            if (prepare_schema_table(YYTHD, lex, (yyvsp[(3) - (5)].table), SCH_STATISTICS))
              MYSQL_YYABORT;
          }
    break;

  case 1579:

/* Line 1455 of yacc.c  */
#line 10188 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command= SQLCOM_SHOW_COLUMN_TYPES;
          }
    break;

  case 1580:

/* Line 1455 of yacc.c  */
#line 10193 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command= SQLCOM_SHOW_STORAGE_ENGINES;
            WARN_DEPRECATED(yythd, "6.0", "SHOW TABLE TYPES", "'SHOW [STORAGE] ENGINES'");
            if (prepare_schema_table(YYTHD, lex, 0, SCH_ENGINES))
              MYSQL_YYABORT;
          }
    break;

  case 1581:

/* Line 1455 of yacc.c  */
#line 10201 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command= SQLCOM_SHOW_STORAGE_ENGINES;
            if (prepare_schema_table(YYTHD, lex, 0, SCH_ENGINES))
              MYSQL_YYABORT;
          }
    break;

  case 1582:

/* Line 1455 of yacc.c  */
#line 10208 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command= SQLCOM_SHOW_AUTHORS;
          }
    break;

  case 1583:

/* Line 1455 of yacc.c  */
#line 10213 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command= SQLCOM_SHOW_CONTRIBUTORS;
          }
    break;

  case 1584:

/* Line 1455 of yacc.c  */
#line 10218 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command= SQLCOM_SHOW_PRIVILEGES;
          }
    break;

  case 1585:

/* Line 1455 of yacc.c  */
#line 10223 "sql_yacc.yy"
    { (void) create_select_for_variable("warning_count"); }
    break;

  case 1586:

/* Line 1455 of yacc.c  */
#line 10225 "sql_yacc.yy"
    { (void) create_select_for_variable("error_count"); }
    break;

  case 1587:

/* Line 1455 of yacc.c  */
#line 10227 "sql_yacc.yy"
    { Lex->sql_command = SQLCOM_SHOW_WARNS;}
    break;

  case 1588:

/* Line 1455 of yacc.c  */
#line 10229 "sql_yacc.yy"
    { Lex->sql_command = SQLCOM_SHOW_ERRORS;}
    break;

  case 1589:

/* Line 1455 of yacc.c  */
#line 10231 "sql_yacc.yy"
    { Lex->sql_command = SQLCOM_SHOW_PROFILES; }
    break;

  case 1590:

/* Line 1455 of yacc.c  */
#line 10233 "sql_yacc.yy"
    { 
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_SHOW_PROFILE;
            if (prepare_schema_table(YYTHD, lex, NULL, SCH_PROFILES) != 0)
              YYABORT;
          }
    break;

  case 1591:

/* Line 1455 of yacc.c  */
#line 10240 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_SHOW_STATUS;
            lex->option_type= (yyvsp[(1) - (3)].var_type);
            if (prepare_schema_table(YYTHD, lex, 0, SCH_STATUS))
              MYSQL_YYABORT;
          }
    break;

  case 1592:

/* Line 1455 of yacc.c  */
#line 10248 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command = SQLCOM_SHOW_ENGINE_STATUS;
            if (!(lex->create_info.db_type=
                  ha_resolve_by_legacy_type(YYTHD, DB_TYPE_INNODB)))
            {
              my_error(ER_UNKNOWN_STORAGE_ENGINE, MYF(0), "InnoDB");
              MYSQL_YYABORT;
            }
            WARN_DEPRECATED(yythd, "6.0", "SHOW INNODB STATUS", "'SHOW ENGINE INNODB STATUS'");
          }
    break;

  case 1593:

/* Line 1455 of yacc.c  */
#line 10260 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command = SQLCOM_SHOW_ENGINE_MUTEX;
            if (!(lex->create_info.db_type=
                  ha_resolve_by_legacy_type(YYTHD, DB_TYPE_INNODB)))
            {
              my_error(ER_UNKNOWN_STORAGE_ENGINE, MYF(0), "InnoDB");
              MYSQL_YYABORT;
            }
            WARN_DEPRECATED(yythd, "6.0", "SHOW MUTEX STATUS", "'SHOW ENGINE INNODB MUTEX'");
          }
    break;

  case 1594:

/* Line 1455 of yacc.c  */
#line 10272 "sql_yacc.yy"
    { Lex->sql_command= SQLCOM_SHOW_PROCESSLIST;}
    break;

  case 1595:

/* Line 1455 of yacc.c  */
#line 10274 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_SHOW_VARIABLES;
            lex->option_type= (yyvsp[(1) - (3)].var_type);
            if (prepare_schema_table(YYTHD, lex, 0, SCH_VARIABLES))
              MYSQL_YYABORT;
          }
    break;

  case 1596:

/* Line 1455 of yacc.c  */
#line 10282 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_SHOW_CHARSETS;
            if (prepare_schema_table(YYTHD, lex, 0, SCH_CHARSETS))
              MYSQL_YYABORT;
          }
    break;

  case 1597:

/* Line 1455 of yacc.c  */
#line 10289 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_SHOW_COLLATIONS;
            if (prepare_schema_table(YYTHD, lex, 0, SCH_COLLATIONS))
              MYSQL_YYABORT;
          }
    break;

  case 1598:

/* Line 1455 of yacc.c  */
#line 10296 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command= SQLCOM_SHOW_GRANTS;
            LEX_USER *curr_user;
            if (!(curr_user= (LEX_USER*) lex->thd->alloc(sizeof(st_lex_user))))
              MYSQL_YYABORT;
            bzero(curr_user, sizeof(st_lex_user));
            lex->grant_user= curr_user;
          }
    break;

  case 1599:

/* Line 1455 of yacc.c  */
#line 10306 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command= SQLCOM_SHOW_GRANTS;
            lex->grant_user=(yyvsp[(3) - (3)].lex_user);
            lex->grant_user->password=null_lex_str;
          }
    break;

  case 1600:

/* Line 1455 of yacc.c  */
#line 10313 "sql_yacc.yy"
    {
            Lex->sql_command=SQLCOM_SHOW_CREATE_DB;
            Lex->create_info.options=(yyvsp[(3) - (4)].num);
            Lex->name= (yyvsp[(4) - (4)].lex_str);
          }
    break;

  case 1601:

/* Line 1455 of yacc.c  */
#line 10319 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command = SQLCOM_SHOW_CREATE;
            if (!lex->select_lex.add_table_to_list(YYTHD, (yyvsp[(3) - (3)].table), NULL,0))
              MYSQL_YYABORT;
            lex->only_view= 0;
            lex->create_info.storage_media= HA_SM_DEFAULT;
          }
    break;

  case 1602:

/* Line 1455 of yacc.c  */
#line 10328 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command = SQLCOM_SHOW_CREATE;
            if (!lex->select_lex.add_table_to_list(YYTHD, (yyvsp[(3) - (3)].table), NULL, 0))
              MYSQL_YYABORT;
            lex->only_view= 1;
          }
    break;

  case 1603:

/* Line 1455 of yacc.c  */
#line 10336 "sql_yacc.yy"
    {
            Lex->sql_command = SQLCOM_SHOW_MASTER_STAT;
          }
    break;

  case 1604:

/* Line 1455 of yacc.c  */
#line 10340 "sql_yacc.yy"
    {
            Lex->sql_command = SQLCOM_SHOW_SLAVE_STAT;
          }
    break;

  case 1605:

/* Line 1455 of yacc.c  */
#line 10344 "sql_yacc.yy"
    {
            LEX *lex= Lex;

            lex->sql_command = SQLCOM_SHOW_CREATE_PROC;
            lex->spname= (yyvsp[(3) - (3)].spname);
          }
    break;

  case 1606:

/* Line 1455 of yacc.c  */
#line 10351 "sql_yacc.yy"
    {
            LEX *lex= Lex;

            lex->sql_command = SQLCOM_SHOW_CREATE_FUNC;
            lex->spname= (yyvsp[(3) - (3)].spname);
          }
    break;

  case 1607:

/* Line 1455 of yacc.c  */
#line 10358 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_SHOW_CREATE_TRIGGER;
            lex->spname= (yyvsp[(3) - (3)].spname);
          }
    break;

  case 1608:

/* Line 1455 of yacc.c  */
#line 10364 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_SHOW_STATUS_PROC;
            if (prepare_schema_table(YYTHD, lex, 0, SCH_PROCEDURES))
              MYSQL_YYABORT;
          }
    break;

  case 1609:

/* Line 1455 of yacc.c  */
#line 10371 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_SHOW_STATUS_FUNC;
            if (prepare_schema_table(YYTHD, lex, 0, SCH_PROCEDURES))
              MYSQL_YYABORT;
          }
    break;

  case 1610:

/* Line 1455 of yacc.c  */
#line 10378 "sql_yacc.yy"
    {
#ifdef DBUG_OFF
            my_parse_error(ER(ER_SYNTAX_ERROR));
            MYSQL_YYABORT;
#else
            Lex->sql_command= SQLCOM_SHOW_PROC_CODE;
            Lex->spname= (yyvsp[(3) - (3)].spname);
#endif
          }
    break;

  case 1611:

/* Line 1455 of yacc.c  */
#line 10388 "sql_yacc.yy"
    {
#ifdef DBUG_OFF
            my_parse_error(ER(ER_SYNTAX_ERROR));
            MYSQL_YYABORT;
#else
            Lex->sql_command= SQLCOM_SHOW_FUNC_CODE;
            Lex->spname= (yyvsp[(3) - (3)].spname);
#endif
          }
    break;

  case 1612:

/* Line 1455 of yacc.c  */
#line 10398 "sql_yacc.yy"
    {
            Lex->spname= (yyvsp[(3) - (3)].spname);
            Lex->sql_command = SQLCOM_SHOW_CREATE_EVENT;
          }
    break;

  case 1613:

/* Line 1455 of yacc.c  */
#line 10406 "sql_yacc.yy"
    { Lex->sql_command= SQLCOM_SHOW_ENGINE_STATUS; }
    break;

  case 1614:

/* Line 1455 of yacc.c  */
#line 10408 "sql_yacc.yy"
    { Lex->sql_command= SQLCOM_SHOW_ENGINE_MUTEX; }
    break;

  case 1615:

/* Line 1455 of yacc.c  */
#line 10410 "sql_yacc.yy"
    { Lex->sql_command= SQLCOM_SHOW_ENGINE_LOGS; }
    break;

  case 1620:

/* Line 1455 of yacc.c  */
#line 10424 "sql_yacc.yy"
    { (yyval.simple_string)= 0; }
    break;

  case 1621:

/* Line 1455 of yacc.c  */
#line 10425 "sql_yacc.yy"
    { (yyval.simple_string)= (yyvsp[(2) - (2)].lex_str).str; }
    break;

  case 1622:

/* Line 1455 of yacc.c  */
#line 10429 "sql_yacc.yy"
    { Lex->verbose=0; }
    break;

  case 1623:

/* Line 1455 of yacc.c  */
#line 10430 "sql_yacc.yy"
    { Lex->verbose=1; }
    break;

  case 1626:

/* Line 1455 of yacc.c  */
#line 10439 "sql_yacc.yy"
    { Lex->mi.log_file_name = 0; }
    break;

  case 1627:

/* Line 1455 of yacc.c  */
#line 10440 "sql_yacc.yy"
    { Lex->mi.log_file_name = (yyvsp[(2) - (2)].lex_str).str; }
    break;

  case 1628:

/* Line 1455 of yacc.c  */
#line 10444 "sql_yacc.yy"
    { Lex->mi.pos = 4; /* skip magic number */ }
    break;

  case 1629:

/* Line 1455 of yacc.c  */
#line 10445 "sql_yacc.yy"
    { Lex->mi.pos = (yyvsp[(2) - (2)].ulonglong_number); }
    break;

  case 1631:

/* Line 1455 of yacc.c  */
#line 10451 "sql_yacc.yy"
    {
            Lex->wild= new (YYTHD->mem_root) String((yyvsp[(2) - (2)].lex_str).str, (yyvsp[(2) - (2)].lex_str).length,
                                                    system_charset_info);
            if (Lex->wild == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1632:

/* Line 1455 of yacc.c  */
#line 10458 "sql_yacc.yy"
    {
            Select->where= (yyvsp[(2) - (2)].item);
            if ((yyvsp[(2) - (2)].item))
              (yyvsp[(2) - (2)].item)->top_level_item();
          }
    break;

  case 1633:

/* Line 1455 of yacc.c  */
#line 10468 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->lock_option= TL_READ;
            mysql_init_select(lex);
            lex->current_select->parsing_place= SELECT_LIST;
            lex->sql_command= SQLCOM_SHOW_FIELDS;
            lex->select_lex.db= 0;
            lex->verbose= 0;
            if (prepare_schema_table(YYTHD, lex, (yyvsp[(2) - (2)].table), SCH_COLUMNS))
              MYSQL_YYABORT;
          }
    break;

  case 1634:

/* Line 1455 of yacc.c  */
#line 10479 "sql_yacc.yy"
    {}
    break;

  case 1635:

/* Line 1455 of yacc.c  */
#line 10481 "sql_yacc.yy"
    { Lex->describe|= DESCRIBE_NORMAL; }
    break;

  case 1636:

/* Line 1455 of yacc.c  */
#line 10483 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->select_lex.options|= SELECT_DESCRIBE;
          }
    break;

  case 1639:

/* Line 1455 of yacc.c  */
#line 10495 "sql_yacc.yy"
    {}
    break;

  case 1640:

/* Line 1455 of yacc.c  */
#line 10496 "sql_yacc.yy"
    { Lex->describe|= DESCRIBE_EXTENDED; }
    break;

  case 1641:

/* Line 1455 of yacc.c  */
#line 10497 "sql_yacc.yy"
    { Lex->describe|= DESCRIBE_PARTITIONS; }
    break;

  case 1642:

/* Line 1455 of yacc.c  */
#line 10501 "sql_yacc.yy"
    {}
    break;

  case 1643:

/* Line 1455 of yacc.c  */
#line 10502 "sql_yacc.yy"
    { Lex->wild= (yyvsp[(1) - (1)].string); }
    break;

  case 1644:

/* Line 1455 of yacc.c  */
#line 10504 "sql_yacc.yy"
    {
            Lex->wild= new (YYTHD->mem_root) String((const char*) (yyvsp[(1) - (1)].lex_str).str,
                                                    (yyvsp[(1) - (1)].lex_str).length,
                                                    system_charset_info);
            if (Lex->wild == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1645:

/* Line 1455 of yacc.c  */
#line 10518 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command= SQLCOM_FLUSH;
            lex->type= 0;
            lex->no_write_to_binlog= (yyvsp[(2) - (2)].num);
          }
    break;

  case 1646:

/* Line 1455 of yacc.c  */
#line 10525 "sql_yacc.yy"
    {}
    break;

  case 1649:

/* Line 1455 of yacc.c  */
#line 10535 "sql_yacc.yy"
    { Lex->type|= REFRESH_TABLES; }
    break;

  case 1650:

/* Line 1455 of yacc.c  */
#line 10536 "sql_yacc.yy"
    {}
    break;

  case 1651:

/* Line 1455 of yacc.c  */
#line 10538 "sql_yacc.yy"
    { Lex->type|= REFRESH_TABLES | REFRESH_READ_LOCK; }
    break;

  case 1652:

/* Line 1455 of yacc.c  */
#line 10540 "sql_yacc.yy"
    { Lex->type|= REFRESH_QUERY_CACHE_FREE; }
    break;

  case 1653:

/* Line 1455 of yacc.c  */
#line 10542 "sql_yacc.yy"
    { Lex->type|= REFRESH_HOSTS; }
    break;

  case 1654:

/* Line 1455 of yacc.c  */
#line 10544 "sql_yacc.yy"
    { Lex->type|= REFRESH_GRANT; }
    break;

  case 1655:

/* Line 1455 of yacc.c  */
#line 10546 "sql_yacc.yy"
    { Lex->type|= REFRESH_LOG; }
    break;

  case 1656:

/* Line 1455 of yacc.c  */
#line 10548 "sql_yacc.yy"
    { Lex->type|= REFRESH_STATUS; }
    break;

  case 1657:

/* Line 1455 of yacc.c  */
#line 10550 "sql_yacc.yy"
    { Lex->type|= REFRESH_SLAVE; }
    break;

  case 1658:

/* Line 1455 of yacc.c  */
#line 10552 "sql_yacc.yy"
    { Lex->type|= REFRESH_MASTER; }
    break;

  case 1659:

/* Line 1455 of yacc.c  */
#line 10554 "sql_yacc.yy"
    { Lex->type|= REFRESH_DES_KEY_FILE; }
    break;

  case 1660:

/* Line 1455 of yacc.c  */
#line 10556 "sql_yacc.yy"
    { Lex->type|= REFRESH_USER_RESOURCES; }
    break;

  case 1661:

/* Line 1455 of yacc.c  */
#line 10560 "sql_yacc.yy"
    {}
    break;

  case 1662:

/* Line 1455 of yacc.c  */
#line 10561 "sql_yacc.yy"
    {}
    break;

  case 1663:

/* Line 1455 of yacc.c  */
#line 10566 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command= SQLCOM_RESET; lex->type=0;
          }
    break;

  case 1664:

/* Line 1455 of yacc.c  */
#line 10571 "sql_yacc.yy"
    {}
    break;

  case 1667:

/* Line 1455 of yacc.c  */
#line 10580 "sql_yacc.yy"
    { Lex->type|= REFRESH_SLAVE; }
    break;

  case 1668:

/* Line 1455 of yacc.c  */
#line 10581 "sql_yacc.yy"
    { Lex->type|= REFRESH_MASTER; }
    break;

  case 1669:

/* Line 1455 of yacc.c  */
#line 10582 "sql_yacc.yy"
    { Lex->type|= REFRESH_QUERY_CACHE;}
    break;

  case 1670:

/* Line 1455 of yacc.c  */
#line 10587 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->type=0;
            lex->sql_command = SQLCOM_PURGE;
          }
    break;

  case 1671:

/* Line 1455 of yacc.c  */
#line 10593 "sql_yacc.yy"
    {}
    break;

  case 1673:

/* Line 1455 of yacc.c  */
#line 10602 "sql_yacc.yy"
    {
            Lex->to_log = (yyvsp[(2) - (2)].lex_str).str;
          }
    break;

  case 1674:

/* Line 1455 of yacc.c  */
#line 10606 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->value_list.empty();
            lex->value_list.push_front((yyvsp[(2) - (2)].item));
            lex->sql_command= SQLCOM_PURGE_BEFORE;
          }
    break;

  case 1675:

/* Line 1455 of yacc.c  */
#line 10618 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->value_list.empty();
            lex->value_list.push_front((yyvsp[(3) - (3)].item));
            lex->sql_command= SQLCOM_KILL;
          }
    break;

  case 1676:

/* Line 1455 of yacc.c  */
#line 10627 "sql_yacc.yy"
    { Lex->type= 0; }
    break;

  case 1677:

/* Line 1455 of yacc.c  */
#line 10628 "sql_yacc.yy"
    { Lex->type= 0; }
    break;

  case 1678:

/* Line 1455 of yacc.c  */
#line 10629 "sql_yacc.yy"
    { Lex->type= ONLY_KILL_QUERY; }
    break;

  case 1679:

/* Line 1455 of yacc.c  */
#line 10636 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command=SQLCOM_CHANGE_DB;
            lex->select_lex.db= (yyvsp[(2) - (2)].lex_str).str;
          }
    break;

  case 1680:

/* Line 1455 of yacc.c  */
#line 10647 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;

            if (lex->sphead)
            {
              my_error(ER_SP_BADSTATEMENT, MYF(0), "LOAD DATA");
              MYSQL_YYABORT;
            }
          }
    break;

  case 1681:

/* Line 1455 of yacc.c  */
#line 10658 "sql_yacc.yy"
    {}
    break;

  case 1682:

/* Line 1455 of yacc.c  */
#line 10660 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            WARN_DEPRECATED(yythd, "6.0", "LOAD TABLE FROM MASTER",
                            "MySQL Administrator (mysqldump, mysql)");
            if (lex->sphead)
            {
              my_error(ER_SP_BADSTATEMENT, MYF(0), "LOAD TABLE");
              MYSQL_YYABORT;
            }
            lex->sql_command = SQLCOM_LOAD_MASTER_TABLE;
            if (!Select->add_table_to_list(YYTHD, (yyvsp[(3) - (5)].table), NULL, TL_OPTION_UPDATING))
              MYSQL_YYABORT;
          }
    break;

  case 1683:

/* Line 1455 of yacc.c  */
#line 10677 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command= SQLCOM_LOAD;
            lex->lock_option= (yyvsp[(1) - (4)].lock_type);
            lex->local_file=  (yyvsp[(2) - (4)].num);
            lex->duplicates= DUP_ERROR;
            lex->ignore= 0;
            if (!(lex->exchange= new sql_exchange((yyvsp[(4) - (4)].lex_str).str, 0)))
              MYSQL_YYABORT;
          }
    break;

  case 1684:

/* Line 1455 of yacc.c  */
#line 10688 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            if (!Select->add_table_to_list(YYTHD, (yyvsp[(9) - (9)].table), NULL, TL_OPTION_UPDATING,
                                           lex->lock_option))
              MYSQL_YYABORT;
            lex->field_list.empty();
            lex->update_list.empty();
            lex->value_list.empty();
          }
    break;

  case 1685:

/* Line 1455 of yacc.c  */
#line 10698 "sql_yacc.yy"
    { Lex->exchange->cs= (yyvsp[(11) - (11)].charset); }
    break;

  case 1686:

/* Line 1455 of yacc.c  */
#line 10701 "sql_yacc.yy"
    {}
    break;

  case 1687:

/* Line 1455 of yacc.c  */
#line 10703 "sql_yacc.yy"
    {
            Lex->sql_command = SQLCOM_LOAD_MASTER_DATA;
            WARN_DEPRECATED(yythd, "6.0", "LOAD DATA FROM MASTER",
                            "mysqldump or future "
                            "BACKUP/RESTORE DATABASE facility");
          }
    break;

  case 1688:

/* Line 1455 of yacc.c  */
#line 10712 "sql_yacc.yy"
    { (yyval.num)=0;}
    break;

  case 1689:

/* Line 1455 of yacc.c  */
#line 10713 "sql_yacc.yy"
    { (yyval.num)=1;}
    break;

  case 1690:

/* Line 1455 of yacc.c  */
#line 10717 "sql_yacc.yy"
    { (yyval.lock_type)= TL_WRITE_DEFAULT; }
    break;

  case 1691:

/* Line 1455 of yacc.c  */
#line 10719 "sql_yacc.yy"
    {
#ifdef HAVE_QUERY_CACHE
            /*
              Ignore this option in SP to avoid problem with query cache
            */
            if (Lex->sphead != 0)
              (yyval.lock_type)= TL_WRITE_DEFAULT;
            else
#endif
              (yyval.lock_type)= TL_WRITE_CONCURRENT_INSERT;
          }
    break;

  case 1692:

/* Line 1455 of yacc.c  */
#line 10730 "sql_yacc.yy"
    { (yyval.lock_type)= TL_WRITE_LOW_PRIORITY; }
    break;

  case 1693:

/* Line 1455 of yacc.c  */
#line 10734 "sql_yacc.yy"
    { Lex->duplicates=DUP_ERROR; }
    break;

  case 1694:

/* Line 1455 of yacc.c  */
#line 10735 "sql_yacc.yy"
    { Lex->duplicates=DUP_REPLACE; }
    break;

  case 1695:

/* Line 1455 of yacc.c  */
#line 10736 "sql_yacc.yy"
    { Lex->ignore= 1; }
    break;

  case 1700:

/* Line 1455 of yacc.c  */
#line 10751 "sql_yacc.yy"
    {
            DBUG_ASSERT(Lex->exchange != 0);
            Lex->exchange->field_term= (yyvsp[(3) - (3)].string);
          }
    break;

  case 1701:

/* Line 1455 of yacc.c  */
#line 10756 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            DBUG_ASSERT(lex->exchange != 0);
            lex->exchange->enclosed= (yyvsp[(4) - (4)].string);
            lex->exchange->opt_enclosed= 1;
          }
    break;

  case 1702:

/* Line 1455 of yacc.c  */
#line 10763 "sql_yacc.yy"
    {
            DBUG_ASSERT(Lex->exchange != 0);
            Lex->exchange->enclosed= (yyvsp[(3) - (3)].string);
          }
    break;

  case 1703:

/* Line 1455 of yacc.c  */
#line 10768 "sql_yacc.yy"
    {
            DBUG_ASSERT(Lex->exchange != 0);
            Lex->exchange->escaped= (yyvsp[(3) - (3)].string);
          }
    break;

  case 1708:

/* Line 1455 of yacc.c  */
#line 10786 "sql_yacc.yy"
    {
            DBUG_ASSERT(Lex->exchange != 0);
            Lex->exchange->line_term= (yyvsp[(3) - (3)].string);
          }
    break;

  case 1709:

/* Line 1455 of yacc.c  */
#line 10791 "sql_yacc.yy"
    {
            DBUG_ASSERT(Lex->exchange != 0);
            Lex->exchange->line_start= (yyvsp[(3) - (3)].string);
          }
    break;

  case 1711:

/* Line 1455 of yacc.c  */
#line 10800 "sql_yacc.yy"
    {
            DBUG_ASSERT(Lex->exchange != 0);
            Lex->exchange->skip_lines= atol((yyvsp[(2) - (3)].lex_str).str);
          }
    break;

  case 1712:

/* Line 1455 of yacc.c  */
#line 10807 "sql_yacc.yy"
    {}
    break;

  case 1713:

/* Line 1455 of yacc.c  */
#line 10808 "sql_yacc.yy"
    {}
    break;

  case 1714:

/* Line 1455 of yacc.c  */
#line 10809 "sql_yacc.yy"
    {}
    break;

  case 1715:

/* Line 1455 of yacc.c  */
#line 10814 "sql_yacc.yy"
    { Lex->field_list.push_back((yyvsp[(3) - (3)].item)); }
    break;

  case 1716:

/* Line 1455 of yacc.c  */
#line 10816 "sql_yacc.yy"
    { Lex->field_list.push_back((yyvsp[(1) - (1)].item)); }
    break;

  case 1717:

/* Line 1455 of yacc.c  */
#line 10820 "sql_yacc.yy"
    {(yyval.item)= (yyvsp[(1) - (1)].item);}
    break;

  case 1718:

/* Line 1455 of yacc.c  */
#line 10822 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_user_var_as_out_param((yyvsp[(2) - (2)].lex_str));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1719:

/* Line 1455 of yacc.c  */
#line 10830 "sql_yacc.yy"
    {}
    break;

  case 1720:

/* Line 1455 of yacc.c  */
#line 10831 "sql_yacc.yy"
    {}
    break;

  case 1721:

/* Line 1455 of yacc.c  */
#line 10838 "sql_yacc.yy"
    {
            LEX_STRING tmp;
            THD *thd= YYTHD;
            CHARSET_INFO *cs_con= thd->variables.collation_connection;
            CHARSET_INFO *cs_cli= thd->variables.character_set_client;
            uint repertoire= thd->lex->text_string_is_7bit &&
                             my_charset_is_ascii_based(cs_cli) ?
                             MY_REPERTOIRE_ASCII : MY_REPERTOIRE_UNICODE30;
            if (thd->charset_is_collation_connection ||
                (repertoire == MY_REPERTOIRE_ASCII &&
                 my_charset_is_ascii_based(cs_con)))
              tmp= (yyvsp[(1) - (1)].lex_str);
            else
            {
              if (thd->convert_string(&tmp, cs_con, (yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length, cs_cli))
                MYSQL_YYABORT;
            }
            (yyval.item)= new (thd->mem_root) Item_string(tmp.str, tmp.length, cs_con,
                                                DERIVATION_COERCIBLE,
                                                repertoire);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1722:

/* Line 1455 of yacc.c  */
#line 10862 "sql_yacc.yy"
    {
            uint repertoire= Lex->text_string_is_7bit ?
                             MY_REPERTOIRE_ASCII : MY_REPERTOIRE_UNICODE30;
            DBUG_ASSERT(my_charset_is_ascii_based(national_charset_info));
            (yyval.item)= new (YYTHD->mem_root) Item_string((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length,
                                                  national_charset_info,
                                                  DERIVATION_COERCIBLE,
                                                  repertoire);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1723:

/* Line 1455 of yacc.c  */
#line 10874 "sql_yacc.yy"
    {
            Item_string *str= new (YYTHD->mem_root) Item_string((yyvsp[(2) - (2)].lex_str).str,
                                                                (yyvsp[(2) - (2)].lex_str).length, (yyvsp[(1) - (2)].charset));
            if (str == NULL)
              MYSQL_YYABORT;
            str->set_repertoire_from_value();
            str->set_cs_specified(TRUE);

            (yyval.item)= str;
          }
    break;

  case 1724:

/* Line 1455 of yacc.c  */
#line 10885 "sql_yacc.yy"
    {
            Item_string* item= (Item_string*) (yyvsp[(1) - (2)].item);
            item->append((yyvsp[(2) - (2)].lex_str).str, (yyvsp[(2) - (2)].lex_str).length);
            if (!(item->collation.repertoire & MY_REPERTOIRE_EXTENDED))
            {
              /*
                 If the string has been pure ASCII so far,
                 check the new part.
              */
              CHARSET_INFO *cs= YYTHD->variables.collation_connection;
              item->collation.repertoire|= my_string_repertoire(cs,
                                                                (yyvsp[(2) - (2)].lex_str).str,
                                                                (yyvsp[(2) - (2)].lex_str).length);
            }
          }
    break;

  case 1725:

/* Line 1455 of yacc.c  */
#line 10904 "sql_yacc.yy"
    {
            (yyval.string)= new (YYTHD->mem_root) String((yyvsp[(1) - (1)].lex_str).str,
                                             (yyvsp[(1) - (1)].lex_str).length,
                                             YYTHD->variables.collation_connection);
            if ((yyval.string) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1726:

/* Line 1455 of yacc.c  */
#line 10912 "sql_yacc.yy"
    {
            Item *tmp= new (YYTHD->mem_root) Item_hex_string((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length);
            if (tmp == NULL)
              MYSQL_YYABORT;
            /*
              it is OK only emulate fix_fields, because we need only
              value of constant
            */
            tmp->quick_fix_field();
            (yyval.string)= tmp->val_str((String*) 0);
          }
    break;

  case 1727:

/* Line 1455 of yacc.c  */
#line 10924 "sql_yacc.yy"
    {
            Item *tmp= new (YYTHD->mem_root) Item_bin_string((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length);
            if (tmp == NULL)
              MYSQL_YYABORT;
            /*
              it is OK only emulate fix_fields, because we need only
              value of constant
            */
            tmp->quick_fix_field();
            (yyval.string)= tmp->val_str((String*) 0);
          }
    break;

  case 1728:

/* Line 1455 of yacc.c  */
#line 10939 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            Lex_input_stream *lip= YYLIP;
            Item_param *item;
            if (! lex->parsing_options.allows_variable)
            {
              my_error(ER_VIEW_SELECT_VARIABLE, MYF(0));
              MYSQL_YYABORT;
            }
            item= new (thd->mem_root) Item_param((uint) (lip->get_tok_start() - thd->query()));
            if (!((yyval.item)= item) || lex->param_list.push_back(item))
            {
              my_message(ER_OUT_OF_RESOURCES, ER(ER_OUT_OF_RESOURCES), MYF(0));
              MYSQL_YYABORT;
            }
          }
    break;

  case 1729:

/* Line 1455 of yacc.c  */
#line 10959 "sql_yacc.yy"
    { (yyval.item) = (yyvsp[(1) - (1)].item); }
    break;

  case 1730:

/* Line 1455 of yacc.c  */
#line 10960 "sql_yacc.yy"
    { (yyval.item) = (yyvsp[(2) - (2)].item_num); }
    break;

  case 1731:

/* Line 1455 of yacc.c  */
#line 10962 "sql_yacc.yy"
    {
            (yyvsp[(2) - (2)].item_num)->max_length++;
            (yyval.item)= (yyvsp[(2) - (2)].item_num)->neg();
          }
    break;

  case 1732:

/* Line 1455 of yacc.c  */
#line 10969 "sql_yacc.yy"
    { (yyval.item) = (yyvsp[(1) - (1)].item); }
    break;

  case 1733:

/* Line 1455 of yacc.c  */
#line 10970 "sql_yacc.yy"
    { (yyval.item) = (yyvsp[(1) - (1)].item_num); }
    break;

  case 1734:

/* Line 1455 of yacc.c  */
#line 10972 "sql_yacc.yy"
    {
            (yyval.item) = new (YYTHD->mem_root) Item_null();
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
            YYLIP->next_state= MY_LEX_OPERATOR_OR_IDENT;
          }
    break;

  case 1735:

/* Line 1455 of yacc.c  */
#line 10979 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_int((char*) "FALSE",0,1);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1736:

/* Line 1455 of yacc.c  */
#line 10985 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_int((char*) "TRUE",1,1);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1737:

/* Line 1455 of yacc.c  */
#line 10991 "sql_yacc.yy"
    {
            (yyval.item) = new (YYTHD->mem_root) Item_hex_string((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1738:

/* Line 1455 of yacc.c  */
#line 10997 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_bin_string((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1739:

/* Line 1455 of yacc.c  */
#line 11003 "sql_yacc.yy"
    {
            Item *tmp= new (YYTHD->mem_root) Item_hex_string((yyvsp[(2) - (2)].lex_str).str, (yyvsp[(2) - (2)].lex_str).length);
            if (tmp == NULL)
              MYSQL_YYABORT;
            /*
              it is OK only emulate fix_fieds, because we need only
              value of constant
            */
            tmp->quick_fix_field();
            String *str= tmp->val_str((String*) 0);

            Item_string *item_str;
            item_str= new (YYTHD->mem_root)
                        Item_string(NULL, /* name will be set in select_item */
                                    str ? str->ptr() : "",
                                    str ? str->length() : 0,
                                    (yyvsp[(1) - (2)].charset));
            if (!item_str ||
                !item_str->check_well_formed_result(&item_str->str_value, TRUE))
            {
              MYSQL_YYABORT;
            }

            item_str->set_repertoire_from_value();
            item_str->set_cs_specified(TRUE);

            (yyval.item)= item_str;
          }
    break;

  case 1740:

/* Line 1455 of yacc.c  */
#line 11032 "sql_yacc.yy"
    {
            Item *tmp= new (YYTHD->mem_root) Item_bin_string((yyvsp[(2) - (2)].lex_str).str, (yyvsp[(2) - (2)].lex_str).length);
            if (tmp == NULL)
              MYSQL_YYABORT;
            /*
              it is OK only emulate fix_fieds, because we need only
              value of constant
            */
            tmp->quick_fix_field();
            String *str= tmp->val_str((String*) 0);

            Item_string *item_str;
            item_str= new (YYTHD->mem_root)
                        Item_string(NULL, /* name will be set in select_item */
                                    str ? str->ptr() : "",
                                    str ? str->length() : 0,
                                    (yyvsp[(1) - (2)].charset));
            if (!item_str ||
                !item_str->check_well_formed_result(&item_str->str_value, TRUE))
            {
              MYSQL_YYABORT;
            }

            item_str->set_cs_specified(TRUE);

            (yyval.item)= item_str;
          }
    break;

  case 1741:

/* Line 1455 of yacc.c  */
#line 11059 "sql_yacc.yy"
    { (yyval.item) = (yyvsp[(2) - (2)].item); }
    break;

  case 1742:

/* Line 1455 of yacc.c  */
#line 11060 "sql_yacc.yy"
    { (yyval.item) = (yyvsp[(2) - (2)].item); }
    break;

  case 1743:

/* Line 1455 of yacc.c  */
#line 11061 "sql_yacc.yy"
    { (yyval.item) = (yyvsp[(2) - (2)].item); }
    break;

  case 1744:

/* Line 1455 of yacc.c  */
#line 11066 "sql_yacc.yy"
    {
            int error;
            (yyval.item_num)= new (YYTHD->mem_root)
                  Item_int((yyvsp[(1) - (1)].lex_str).str,
                           (longlong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, NULL, &error),
                           (yyvsp[(1) - (1)].lex_str).length);
            if ((yyval.item_num) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1745:

/* Line 1455 of yacc.c  */
#line 11076 "sql_yacc.yy"
    {
            int error;
            (yyval.item_num)= new (YYTHD->mem_root)
                  Item_int((yyvsp[(1) - (1)].lex_str).str,
                           (longlong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, NULL, &error),
                           (yyvsp[(1) - (1)].lex_str).length);
            if ((yyval.item_num) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1746:

/* Line 1455 of yacc.c  */
#line 11086 "sql_yacc.yy"
    {
            (yyval.item_num)= new (YYTHD->mem_root) Item_uint((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length);
            if ((yyval.item_num) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1747:

/* Line 1455 of yacc.c  */
#line 11092 "sql_yacc.yy"
    {
            (yyval.item_num)= new (YYTHD->mem_root) Item_decimal((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length,
                                                   YYTHD->charset());
            if (((yyval.item_num) == NULL) || (YYTHD->is_error()))
            {
              MYSQL_YYABORT;
            }
          }
    break;

  case 1748:

/* Line 1455 of yacc.c  */
#line 11101 "sql_yacc.yy"
    {
            (yyval.item_num)= new (YYTHD->mem_root) Item_float((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length);
            if (((yyval.item_num) == NULL) || (YYTHD->is_error()))
            {
              MYSQL_YYABORT;
            }
          }
    break;

  case 1749:

/* Line 1455 of yacc.c  */
#line 11115 "sql_yacc.yy"
    { (yyval.item)=(yyvsp[(1) - (1)].item); }
    break;

  case 1750:

/* Line 1455 of yacc.c  */
#line 11116 "sql_yacc.yy"
    { (yyval.item)=(yyvsp[(1) - (1)].item); }
    break;

  case 1751:

/* Line 1455 of yacc.c  */
#line 11121 "sql_yacc.yy"
    {
            SELECT_LEX *sel= Select;
            (yyval.item)= new (YYTHD->mem_root) Item_field(Lex->current_context(),
                                                 NullS, (yyvsp[(1) - (3)].lex_str).str, "*");
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
            sel->with_wild++;
          }
    break;

  case 1752:

/* Line 1455 of yacc.c  */
#line 11130 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            SELECT_LEX *sel= Select;
            const char* schema= thd->client_capabilities & CLIENT_NO_SCHEMA ?
                                  NullS : (yyvsp[(1) - (5)].lex_str).str;
            (yyval.item)= new (thd->mem_root) Item_field(Lex->current_context(),
                                               schema,
                                               (yyvsp[(3) - (5)].lex_str).str,"*");
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
            sel->with_wild++;
          }
    break;

  case 1753:

/* Line 1455 of yacc.c  */
#line 11145 "sql_yacc.yy"
    { (yyval.item)=(yyvsp[(1) - (1)].item); }
    break;

  case 1754:

/* Line 1455 of yacc.c  */
#line 11150 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            Lex_input_stream *lip= YYLIP;
            sp_variable_t *spv;
            sp_pcontext *spc = lex->spcont;
            if (spc && (spv = spc->find_variable(&(yyvsp[(1) - (1)].lex_str))))
            {
              /* We're compiling a stored procedure and found a variable */
              if (! lex->parsing_options.allows_variable)
              {
                my_error(ER_VIEW_SELECT_VARIABLE, MYF(0));
                MYSQL_YYABORT;
              }

              Item_splocal *splocal;
              splocal= new (thd->mem_root)
                         Item_splocal((yyvsp[(1) - (1)].lex_str), spv->offset, spv->type,
                                      lip->get_tok_start_prev() - lex->sphead->m_tmp_query,
                                      lip->get_tok_end() - lip->get_tok_start_prev());
              if (splocal == NULL)
                MYSQL_YYABORT;
#ifndef DBUG_OFF
              splocal->m_sp= lex->sphead;
#endif
              (yyval.item)= splocal;
              lex->safe_to_cache_query=0;
            }
            else
            {
              SELECT_LEX *sel=Select;
              if ((sel->parsing_place != IN_HAVING) ||
                  (sel->get_in_sum_expr() > 0))
              {
                (yyval.item)= new (thd->mem_root) Item_field(Lex->current_context(),
                                                   NullS, NullS, (yyvsp[(1) - (1)].lex_str).str);
              }
              else
              {
                (yyval.item)= new (thd->mem_root) Item_ref(Lex->current_context(),
                                                 NullS, NullS, (yyvsp[(1) - (1)].lex_str).str);
              }
              if ((yyval.item) == NULL)
                MYSQL_YYABORT;
            }
          }
    break;

  case 1755:

/* Line 1455 of yacc.c  */
#line 11196 "sql_yacc.yy"
    { (yyval.item)= (yyvsp[(1) - (1)].item); }
    break;

  case 1756:

/* Line 1455 of yacc.c  */
#line 11201 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            SELECT_LEX *sel=Select;
            if ((sel->parsing_place != IN_HAVING) ||
                (sel->get_in_sum_expr() > 0))
            {
              (yyval.item)= new (thd->mem_root) Item_field(Lex->current_context(),
                                                 NullS, NullS, (yyvsp[(1) - (1)].lex_str).str);
            }
            else
            {
              (yyval.item)= new (thd->mem_root) Item_ref(Lex->current_context(),
                                               NullS, NullS, (yyvsp[(1) - (1)].lex_str).str);
            }
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1757:

/* Line 1455 of yacc.c  */
#line 11218 "sql_yacc.yy"
    { (yyval.item)= (yyvsp[(1) - (1)].item); }
    break;

  case 1758:

/* Line 1455 of yacc.c  */
#line 11223 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;

            /*
              FIXME This will work ok in simple_ident_nospvar case because
              we can't meet simple_ident_nospvar in trigger now. But it
              should be changed in future.
            */
            if (lex->sphead && lex->sphead->m_type == TYPE_ENUM_TRIGGER &&
                (!my_strcasecmp(system_charset_info, (yyvsp[(1) - (3)].lex_str).str, "NEW") ||
                 !my_strcasecmp(system_charset_info, (yyvsp[(1) - (3)].lex_str).str, "OLD")))
            {
              Item_trigger_field *trg_fld;
              bool new_row= ((yyvsp[(1) - (3)].lex_str).str[0]=='N' || (yyvsp[(1) - (3)].lex_str).str[0]=='n');

              if (lex->trg_chistics.event == TRG_EVENT_INSERT &&
                  !new_row)
              {
                my_error(ER_TRG_NO_SUCH_ROW_IN_TRG, MYF(0), "OLD", "on INSERT");
                MYSQL_YYABORT;
              }

              if (lex->trg_chistics.event == TRG_EVENT_DELETE &&
                  new_row)
              {
                my_error(ER_TRG_NO_SUCH_ROW_IN_TRG, MYF(0), "NEW", "on DELETE");
                MYSQL_YYABORT;
              }

              DBUG_ASSERT(!new_row ||
                          (lex->trg_chistics.event == TRG_EVENT_INSERT ||
                           lex->trg_chistics.event == TRG_EVENT_UPDATE));
              const bool read_only=
                !(new_row && lex->trg_chistics.action_time == TRG_ACTION_BEFORE);
              trg_fld= new (thd->mem_root)
                         Item_trigger_field(Lex->current_context(),
                                            new_row ?
                                              Item_trigger_field::NEW_ROW:
                                              Item_trigger_field::OLD_ROW,
                                            (yyvsp[(3) - (3)].lex_str).str,
                                            SELECT_ACL,
                                            read_only);
              if (trg_fld == NULL)
                MYSQL_YYABORT;

              /*
                Let us add this item to list of all Item_trigger_field objects
                in trigger.
              */
              lex->trg_table_fields.link_in_list(trg_fld,
                                                 &trg_fld->next_trg_field);

              (yyval.item)= trg_fld;
            }
            else
            {
              SELECT_LEX *sel= lex->current_select;
              if (sel->no_table_names_allowed)
              {
                my_error(ER_TABLENAME_NOT_ALLOWED_HERE,
                         MYF(0), (yyvsp[(1) - (3)].lex_str).str, thd->where);
              }
              if ((sel->parsing_place != IN_HAVING) ||
                  (sel->get_in_sum_expr() > 0))
              {
                (yyval.item)= new (thd->mem_root) Item_field(Lex->current_context(),
                                                   NullS, (yyvsp[(1) - (3)].lex_str).str, (yyvsp[(3) - (3)].lex_str).str);
              }
              else
              {
                (yyval.item)= new (thd->mem_root) Item_ref(Lex->current_context(),
                                                 NullS, (yyvsp[(1) - (3)].lex_str).str, (yyvsp[(3) - (3)].lex_str).str);
              }
              if ((yyval.item) == NULL)
                MYSQL_YYABORT;
            }
          }
    break;

  case 1759:

/* Line 1455 of yacc.c  */
#line 11302 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            SELECT_LEX *sel= lex->current_select;
            if (sel->no_table_names_allowed)
            {
              my_error(ER_TABLENAME_NOT_ALLOWED_HERE,
                       MYF(0), (yyvsp[(2) - (4)].lex_str).str, thd->where);
            }
            if ((sel->parsing_place != IN_HAVING) ||
                (sel->get_in_sum_expr() > 0))
            {
              (yyval.item)= new (thd->mem_root) Item_field(Lex->current_context(),
                                                 NullS, (yyvsp[(2) - (4)].lex_str).str, (yyvsp[(4) - (4)].lex_str).str);

            }
            else
            {
              (yyval.item)= new (thd->mem_root) Item_ref(Lex->current_context(),
                                               NullS, (yyvsp[(2) - (4)].lex_str).str, (yyvsp[(4) - (4)].lex_str).str);
            }
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1760:

/* Line 1455 of yacc.c  */
#line 11327 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            SELECT_LEX *sel= lex->current_select;
            const char* schema= (thd->client_capabilities & CLIENT_NO_SCHEMA ?
                                 NullS : (yyvsp[(1) - (5)].lex_str).str);
            if (sel->no_table_names_allowed)
            {
              my_error(ER_TABLENAME_NOT_ALLOWED_HERE,
                       MYF(0), (yyvsp[(3) - (5)].lex_str).str, thd->where);
            }
            if ((sel->parsing_place != IN_HAVING) ||
                (sel->get_in_sum_expr() > 0))
            {
              (yyval.item)= new (thd->mem_root) Item_field(Lex->current_context(),
                                                 schema,
                                                 (yyvsp[(3) - (5)].lex_str).str, (yyvsp[(5) - (5)].lex_str).str);
            }
            else
            {
              (yyval.item)= new (thd->mem_root) Item_ref(Lex->current_context(),
                                               schema,
                                               (yyvsp[(3) - (5)].lex_str).str, (yyvsp[(5) - (5)].lex_str).str);
            }
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1761:

/* Line 1455 of yacc.c  */
#line 11357 "sql_yacc.yy"
    { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str);}
    break;

  case 1762:

/* Line 1455 of yacc.c  */
#line 11359 "sql_yacc.yy"
    {
            TABLE_LIST *table= Select->table_list.first;
            if (my_strcasecmp(table_alias_charset, (yyvsp[(1) - (5)].lex_str).str, table->db))
            {
              my_error(ER_WRONG_DB_NAME, MYF(0), (yyvsp[(1) - (5)].lex_str).str);
              MYSQL_YYABORT;
            }
            if (my_strcasecmp(table_alias_charset, (yyvsp[(3) - (5)].lex_str).str,
                              table->table_name))
            {
              my_error(ER_WRONG_TABLE_NAME, MYF(0), (yyvsp[(3) - (5)].lex_str).str);
              MYSQL_YYABORT;
            }
            (yyval.lex_str)=(yyvsp[(5) - (5)].lex_str);
          }
    break;

  case 1763:

/* Line 1455 of yacc.c  */
#line 11375 "sql_yacc.yy"
    {
            TABLE_LIST *table= Select->table_list.first;
            if (my_strcasecmp(table_alias_charset, (yyvsp[(1) - (3)].lex_str).str, table->alias))
            {
              my_error(ER_WRONG_TABLE_NAME, MYF(0), (yyvsp[(1) - (3)].lex_str).str);
              MYSQL_YYABORT;
            }
            (yyval.lex_str)=(yyvsp[(3) - (3)].lex_str);
          }
    break;

  case 1764:

/* Line 1455 of yacc.c  */
#line 11384 "sql_yacc.yy"
    { (yyval.lex_str)=(yyvsp[(2) - (2)].lex_str);}
    break;

  case 1765:

/* Line 1455 of yacc.c  */
#line 11389 "sql_yacc.yy"
    {
            (yyval.table)= new Table_ident((yyvsp[(1) - (1)].lex_str));
            if ((yyval.table) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1766:

/* Line 1455 of yacc.c  */
#line 11395 "sql_yacc.yy"
    {
            (yyval.table)= new Table_ident(YYTHD, (yyvsp[(1) - (3)].lex_str),(yyvsp[(3) - (3)].lex_str),0);
            if ((yyval.table) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1767:

/* Line 1455 of yacc.c  */
#line 11401 "sql_yacc.yy"
    {
            /* For Delphi */
            (yyval.table)= new Table_ident((yyvsp[(2) - (2)].lex_str));
            if ((yyval.table) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1768:

/* Line 1455 of yacc.c  */
#line 11411 "sql_yacc.yy"
    {
            (yyval.table)= new Table_ident((yyvsp[(1) - (2)].lex_str));
            if ((yyval.table) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1769:

/* Line 1455 of yacc.c  */
#line 11417 "sql_yacc.yy"
    {
            (yyval.table)= new Table_ident(YYTHD, (yyvsp[(1) - (4)].lex_str),(yyvsp[(3) - (4)].lex_str),0);
            if ((yyval.table) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1770:

/* Line 1455 of yacc.c  */
#line 11426 "sql_yacc.yy"
    {
            LEX_STRING db={(char*) any_db,3};
            (yyval.table)= new Table_ident(YYTHD, db,(yyvsp[(1) - (1)].lex_str),0);
            if ((yyval.table) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1771:

/* Line 1455 of yacc.c  */
#line 11435 "sql_yacc.yy"
    { (yyval.lex_str)= (yyvsp[(1) - (1)].lex_str); }
    break;

  case 1772:

/* Line 1455 of yacc.c  */
#line 11437 "sql_yacc.yy"
    {
            THD *thd= YYTHD;

            if (thd->charset_is_system_charset)
            {
              CHARSET_INFO *cs= system_charset_info;
              int dummy_error;
              uint wlen= cs->cset->well_formed_len(cs, (yyvsp[(1) - (1)].lex_str).str,
                                                   (yyvsp[(1) - (1)].lex_str).str+(yyvsp[(1) - (1)].lex_str).length,
                                                   (yyvsp[(1) - (1)].lex_str).length, &dummy_error);
              if (wlen < (yyvsp[(1) - (1)].lex_str).length)
              {
                my_error(ER_INVALID_CHARACTER_STRING, MYF(0),
                         cs->csname, (yyvsp[(1) - (1)].lex_str).str + wlen);
                MYSQL_YYABORT;
              }
              (yyval.lex_str)= (yyvsp[(1) - (1)].lex_str);
            }
            else
            {
              if (thd->convert_string(&(yyval.lex_str), system_charset_info,
                                  (yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length, thd->charset()))
                MYSQL_YYABORT;
            }
          }
    break;

  case 1773:

/* Line 1455 of yacc.c  */
#line 11466 "sql_yacc.yy"
    {
            THD *thd= YYTHD;

            if (thd->charset_is_system_charset)
              (yyval.lex_str)= (yyvsp[(1) - (1)].lex_str);
            else
            {
              if (thd->convert_string(&(yyval.lex_str), system_charset_info,
                                  (yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length, thd->charset()))
                MYSQL_YYABORT;
            }
          }
    break;

  case 1774:

/* Line 1455 of yacc.c  */
#line 11482 "sql_yacc.yy"
    {
            THD *thd= YYTHD;

            if (thd->charset_is_collation_connection)
              (yyval.lex_str)= (yyvsp[(1) - (1)].lex_str);
            else
            {
              if (thd->convert_string(&(yyval.lex_str), thd->variables.collation_connection,
                                  (yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length, thd->charset()))
                MYSQL_YYABORT;
            } 
          }
    break;

  case 1775:

/* Line 1455 of yacc.c  */
#line 11498 "sql_yacc.yy"
    {
            THD *thd= YYTHD;

            if (thd->charset_is_character_set_filesystem)
              (yyval.lex_str)= (yyvsp[(1) - (1)].lex_str);
            else
            {
              if (thd->convert_string(&(yyval.lex_str),
                                      thd->variables.character_set_filesystem,
                                      (yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length, thd->charset()))
                MYSQL_YYABORT;
            }
          }
    break;

  case 1776:

/* Line 1455 of yacc.c  */
#line 11514 "sql_yacc.yy"
    { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str); }
    break;

  case 1777:

/* Line 1455 of yacc.c  */
#line 11516 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            (yyval.lex_str).str= thd->strmake((yyvsp[(1) - (1)].symbol).str, (yyvsp[(1) - (1)].symbol).length);
            if ((yyval.lex_str).str == NULL)
              MYSQL_YYABORT;
            (yyval.lex_str).length= (yyvsp[(1) - (1)].symbol).length;
          }
    break;

  case 1778:

/* Line 1455 of yacc.c  */
#line 11526 "sql_yacc.yy"
    { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str); }
    break;

  case 1779:

/* Line 1455 of yacc.c  */
#line 11528 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            (yyval.lex_str).str= thd->strmake((yyvsp[(1) - (1)].symbol).str, (yyvsp[(1) - (1)].symbol).length);
            if ((yyval.lex_str).str == NULL)
              MYSQL_YYABORT;
            (yyval.lex_str).length= (yyvsp[(1) - (1)].symbol).length;
          }
    break;

  case 1780:

/* Line 1455 of yacc.c  */
#line 11538 "sql_yacc.yy"
    { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str);}
    break;

  case 1781:

/* Line 1455 of yacc.c  */
#line 11539 "sql_yacc.yy"
    { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str);}
    break;

  case 1782:

/* Line 1455 of yacc.c  */
#line 11540 "sql_yacc.yy"
    { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str);}
    break;

  case 1783:

/* Line 1455 of yacc.c  */
#line 11545 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            if (!((yyval.lex_user)=(LEX_USER*) thd->alloc(sizeof(st_lex_user))))
              MYSQL_YYABORT;
            (yyval.lex_user)->user = (yyvsp[(1) - (1)].lex_str);
            (yyval.lex_user)->host.str= (char *) "%";
            (yyval.lex_user)->host.length= 1;

            if (check_string_char_length(&(yyval.lex_user)->user, ER(ER_USERNAME),
                                         USERNAME_CHAR_LENGTH,
                                         system_charset_info, 0))
              MYSQL_YYABORT;
          }
    break;

  case 1784:

/* Line 1455 of yacc.c  */
#line 11559 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            if (!((yyval.lex_user)=(LEX_USER*) thd->alloc(sizeof(st_lex_user))))
              MYSQL_YYABORT;
            (yyval.lex_user)->user = (yyvsp[(1) - (3)].lex_str); (yyval.lex_user)->host=(yyvsp[(3) - (3)].lex_str);

            if (check_string_char_length(&(yyval.lex_user)->user, ER(ER_USERNAME),
                                         USERNAME_CHAR_LENGTH,
                                         system_charset_info, 0) ||
                check_host_name(&(yyval.lex_user)->host))
              MYSQL_YYABORT;
          }
    break;

  case 1785:

/* Line 1455 of yacc.c  */
#line 11572 "sql_yacc.yy"
    {
            if (!((yyval.lex_user)=(LEX_USER*) YYTHD->alloc(sizeof(st_lex_user))))
              MYSQL_YYABORT;
            /* 
              empty LEX_USER means current_user and 
              will be handled in the  get_current_user() function
              later
            */
            bzero((yyval.lex_user), sizeof(LEX_USER));
          }
    break;

  case 1786:

/* Line 1455 of yacc.c  */
#line 11586 "sql_yacc.yy"
    {}
    break;

  case 1787:

/* Line 1455 of yacc.c  */
#line 11587 "sql_yacc.yy"
    {}
    break;

  case 1788:

/* Line 1455 of yacc.c  */
#line 11588 "sql_yacc.yy"
    {}
    break;

  case 1789:

/* Line 1455 of yacc.c  */
#line 11589 "sql_yacc.yy"
    {}
    break;

  case 1790:

/* Line 1455 of yacc.c  */
#line 11590 "sql_yacc.yy"
    {}
    break;

  case 1791:

/* Line 1455 of yacc.c  */
#line 11591 "sql_yacc.yy"
    {}
    break;

  case 1792:

/* Line 1455 of yacc.c  */
#line 11592 "sql_yacc.yy"
    {}
    break;

  case 1793:

/* Line 1455 of yacc.c  */
#line 11593 "sql_yacc.yy"
    {}
    break;

  case 1794:

/* Line 1455 of yacc.c  */
#line 11594 "sql_yacc.yy"
    {}
    break;

  case 1795:

/* Line 1455 of yacc.c  */
#line 11595 "sql_yacc.yy"
    {}
    break;

  case 1796:

/* Line 1455 of yacc.c  */
#line 11596 "sql_yacc.yy"
    {}
    break;

  case 1797:

/* Line 1455 of yacc.c  */
#line 11597 "sql_yacc.yy"
    {}
    break;

  case 1798:

/* Line 1455 of yacc.c  */
#line 11598 "sql_yacc.yy"
    {}
    break;

  case 1799:

/* Line 1455 of yacc.c  */
#line 11599 "sql_yacc.yy"
    {}
    break;

  case 1800:

/* Line 1455 of yacc.c  */
#line 11600 "sql_yacc.yy"
    {}
    break;

  case 1801:

/* Line 1455 of yacc.c  */
#line 11601 "sql_yacc.yy"
    {}
    break;

  case 1802:

/* Line 1455 of yacc.c  */
#line 11602 "sql_yacc.yy"
    {}
    break;

  case 1803:

/* Line 1455 of yacc.c  */
#line 11603 "sql_yacc.yy"
    {}
    break;

  case 1804:

/* Line 1455 of yacc.c  */
#line 11604 "sql_yacc.yy"
    {}
    break;

  case 1805:

/* Line 1455 of yacc.c  */
#line 11605 "sql_yacc.yy"
    {}
    break;

  case 1806:

/* Line 1455 of yacc.c  */
#line 11606 "sql_yacc.yy"
    {}
    break;

  case 1807:

/* Line 1455 of yacc.c  */
#line 11607 "sql_yacc.yy"
    {}
    break;

  case 1808:

/* Line 1455 of yacc.c  */
#line 11608 "sql_yacc.yy"
    {}
    break;

  case 1809:

/* Line 1455 of yacc.c  */
#line 11609 "sql_yacc.yy"
    {}
    break;

  case 1810:

/* Line 1455 of yacc.c  */
#line 11610 "sql_yacc.yy"
    {}
    break;

  case 1811:

/* Line 1455 of yacc.c  */
#line 11611 "sql_yacc.yy"
    {}
    break;

  case 1812:

/* Line 1455 of yacc.c  */
#line 11612 "sql_yacc.yy"
    {}
    break;

  case 1813:

/* Line 1455 of yacc.c  */
#line 11613 "sql_yacc.yy"
    {}
    break;

  case 1814:

/* Line 1455 of yacc.c  */
#line 11614 "sql_yacc.yy"
    {}
    break;

  case 1815:

/* Line 1455 of yacc.c  */
#line 11615 "sql_yacc.yy"
    {}
    break;

  case 1816:

/* Line 1455 of yacc.c  */
#line 11616 "sql_yacc.yy"
    {}
    break;

  case 1817:

/* Line 1455 of yacc.c  */
#line 11617 "sql_yacc.yy"
    {}
    break;

  case 1818:

/* Line 1455 of yacc.c  */
#line 11618 "sql_yacc.yy"
    {}
    break;

  case 1819:

/* Line 1455 of yacc.c  */
#line 11619 "sql_yacc.yy"
    {}
    break;

  case 1820:

/* Line 1455 of yacc.c  */
#line 11620 "sql_yacc.yy"
    {}
    break;

  case 1821:

/* Line 1455 of yacc.c  */
#line 11621 "sql_yacc.yy"
    {}
    break;

  case 1822:

/* Line 1455 of yacc.c  */
#line 11622 "sql_yacc.yy"
    {}
    break;

  case 1823:

/* Line 1455 of yacc.c  */
#line 11623 "sql_yacc.yy"
    {}
    break;

  case 1824:

/* Line 1455 of yacc.c  */
#line 11624 "sql_yacc.yy"
    {}
    break;

  case 1825:

/* Line 1455 of yacc.c  */
#line 11625 "sql_yacc.yy"
    {}
    break;

  case 1826:

/* Line 1455 of yacc.c  */
#line 11626 "sql_yacc.yy"
    {}
    break;

  case 1827:

/* Line 1455 of yacc.c  */
#line 11627 "sql_yacc.yy"
    {}
    break;

  case 1828:

/* Line 1455 of yacc.c  */
#line 11628 "sql_yacc.yy"
    {}
    break;

  case 1829:

/* Line 1455 of yacc.c  */
#line 11629 "sql_yacc.yy"
    {}
    break;

  case 1830:

/* Line 1455 of yacc.c  */
#line 11630 "sql_yacc.yy"
    {}
    break;

  case 1831:

/* Line 1455 of yacc.c  */
#line 11631 "sql_yacc.yy"
    {}
    break;

  case 1832:

/* Line 1455 of yacc.c  */
#line 11632 "sql_yacc.yy"
    {}
    break;

  case 1833:

/* Line 1455 of yacc.c  */
#line 11633 "sql_yacc.yy"
    {}
    break;

  case 1834:

/* Line 1455 of yacc.c  */
#line 11634 "sql_yacc.yy"
    {}
    break;

  case 1835:

/* Line 1455 of yacc.c  */
#line 11635 "sql_yacc.yy"
    {}
    break;

  case 1836:

/* Line 1455 of yacc.c  */
#line 11645 "sql_yacc.yy"
    {}
    break;

  case 1837:

/* Line 1455 of yacc.c  */
#line 11646 "sql_yacc.yy"
    {}
    break;

  case 1838:

/* Line 1455 of yacc.c  */
#line 11647 "sql_yacc.yy"
    {}
    break;

  case 1839:

/* Line 1455 of yacc.c  */
#line 11648 "sql_yacc.yy"
    {}
    break;

  case 1840:

/* Line 1455 of yacc.c  */
#line 11649 "sql_yacc.yy"
    {}
    break;

  case 1841:

/* Line 1455 of yacc.c  */
#line 11650 "sql_yacc.yy"
    {}
    break;

  case 1842:

/* Line 1455 of yacc.c  */
#line 11651 "sql_yacc.yy"
    {}
    break;

  case 1843:

/* Line 1455 of yacc.c  */
#line 11652 "sql_yacc.yy"
    {}
    break;

  case 1844:

/* Line 1455 of yacc.c  */
#line 11653 "sql_yacc.yy"
    {}
    break;

  case 1845:

/* Line 1455 of yacc.c  */
#line 11654 "sql_yacc.yy"
    {}
    break;

  case 1846:

/* Line 1455 of yacc.c  */
#line 11655 "sql_yacc.yy"
    {}
    break;

  case 1847:

/* Line 1455 of yacc.c  */
#line 11656 "sql_yacc.yy"
    {}
    break;

  case 1848:

/* Line 1455 of yacc.c  */
#line 11657 "sql_yacc.yy"
    {}
    break;

  case 1849:

/* Line 1455 of yacc.c  */
#line 11658 "sql_yacc.yy"
    {}
    break;

  case 1850:

/* Line 1455 of yacc.c  */
#line 11659 "sql_yacc.yy"
    {}
    break;

  case 1851:

/* Line 1455 of yacc.c  */
#line 11660 "sql_yacc.yy"
    {}
    break;

  case 1852:

/* Line 1455 of yacc.c  */
#line 11661 "sql_yacc.yy"
    {}
    break;

  case 1853:

/* Line 1455 of yacc.c  */
#line 11662 "sql_yacc.yy"
    {}
    break;

  case 1854:

/* Line 1455 of yacc.c  */
#line 11663 "sql_yacc.yy"
    {}
    break;

  case 1855:

/* Line 1455 of yacc.c  */
#line 11664 "sql_yacc.yy"
    {}
    break;

  case 1856:

/* Line 1455 of yacc.c  */
#line 11665 "sql_yacc.yy"
    {}
    break;

  case 1857:

/* Line 1455 of yacc.c  */
#line 11666 "sql_yacc.yy"
    {}
    break;

  case 1858:

/* Line 1455 of yacc.c  */
#line 11667 "sql_yacc.yy"
    {}
    break;

  case 1859:

/* Line 1455 of yacc.c  */
#line 11668 "sql_yacc.yy"
    {}
    break;

  case 1860:

/* Line 1455 of yacc.c  */
#line 11669 "sql_yacc.yy"
    {}
    break;

  case 1861:

/* Line 1455 of yacc.c  */
#line 11670 "sql_yacc.yy"
    {}
    break;

  case 1862:

/* Line 1455 of yacc.c  */
#line 11671 "sql_yacc.yy"
    {}
    break;

  case 1863:

/* Line 1455 of yacc.c  */
#line 11672 "sql_yacc.yy"
    {}
    break;

  case 1864:

/* Line 1455 of yacc.c  */
#line 11673 "sql_yacc.yy"
    {}
    break;

  case 1865:

/* Line 1455 of yacc.c  */
#line 11674 "sql_yacc.yy"
    {}
    break;

  case 1866:

/* Line 1455 of yacc.c  */
#line 11675 "sql_yacc.yy"
    {}
    break;

  case 1867:

/* Line 1455 of yacc.c  */
#line 11676 "sql_yacc.yy"
    {}
    break;

  case 1868:

/* Line 1455 of yacc.c  */
#line 11677 "sql_yacc.yy"
    {}
    break;

  case 1869:

/* Line 1455 of yacc.c  */
#line 11678 "sql_yacc.yy"
    {}
    break;

  case 1870:

/* Line 1455 of yacc.c  */
#line 11679 "sql_yacc.yy"
    {}
    break;

  case 1871:

/* Line 1455 of yacc.c  */
#line 11680 "sql_yacc.yy"
    {}
    break;

  case 1872:

/* Line 1455 of yacc.c  */
#line 11681 "sql_yacc.yy"
    {}
    break;

  case 1873:

/* Line 1455 of yacc.c  */
#line 11682 "sql_yacc.yy"
    {}
    break;

  case 1874:

/* Line 1455 of yacc.c  */
#line 11683 "sql_yacc.yy"
    {}
    break;

  case 1875:

/* Line 1455 of yacc.c  */
#line 11684 "sql_yacc.yy"
    {}
    break;

  case 1876:

/* Line 1455 of yacc.c  */
#line 11685 "sql_yacc.yy"
    {}
    break;

  case 1877:

/* Line 1455 of yacc.c  */
#line 11686 "sql_yacc.yy"
    {}
    break;

  case 1878:

/* Line 1455 of yacc.c  */
#line 11687 "sql_yacc.yy"
    {}
    break;

  case 1879:

/* Line 1455 of yacc.c  */
#line 11688 "sql_yacc.yy"
    {}
    break;

  case 1880:

/* Line 1455 of yacc.c  */
#line 11689 "sql_yacc.yy"
    {}
    break;

  case 1881:

/* Line 1455 of yacc.c  */
#line 11690 "sql_yacc.yy"
    {}
    break;

  case 1882:

/* Line 1455 of yacc.c  */
#line 11691 "sql_yacc.yy"
    {}
    break;

  case 1883:

/* Line 1455 of yacc.c  */
#line 11692 "sql_yacc.yy"
    {}
    break;

  case 1884:

/* Line 1455 of yacc.c  */
#line 11693 "sql_yacc.yy"
    {}
    break;

  case 1885:

/* Line 1455 of yacc.c  */
#line 11694 "sql_yacc.yy"
    {}
    break;

  case 1886:

/* Line 1455 of yacc.c  */
#line 11695 "sql_yacc.yy"
    {}
    break;

  case 1887:

/* Line 1455 of yacc.c  */
#line 11696 "sql_yacc.yy"
    {}
    break;

  case 1888:

/* Line 1455 of yacc.c  */
#line 11697 "sql_yacc.yy"
    {}
    break;

  case 1889:

/* Line 1455 of yacc.c  */
#line 11698 "sql_yacc.yy"
    {}
    break;

  case 1890:

/* Line 1455 of yacc.c  */
#line 11699 "sql_yacc.yy"
    {}
    break;

  case 1891:

/* Line 1455 of yacc.c  */
#line 11700 "sql_yacc.yy"
    {}
    break;

  case 1892:

/* Line 1455 of yacc.c  */
#line 11701 "sql_yacc.yy"
    {}
    break;

  case 1893:

/* Line 1455 of yacc.c  */
#line 11702 "sql_yacc.yy"
    {}
    break;

  case 1894:

/* Line 1455 of yacc.c  */
#line 11703 "sql_yacc.yy"
    {}
    break;

  case 1895:

/* Line 1455 of yacc.c  */
#line 11704 "sql_yacc.yy"
    {}
    break;

  case 1896:

/* Line 1455 of yacc.c  */
#line 11705 "sql_yacc.yy"
    {}
    break;

  case 1897:

/* Line 1455 of yacc.c  */
#line 11706 "sql_yacc.yy"
    {}
    break;

  case 1898:

/* Line 1455 of yacc.c  */
#line 11707 "sql_yacc.yy"
    {}
    break;

  case 1899:

/* Line 1455 of yacc.c  */
#line 11708 "sql_yacc.yy"
    {}
    break;

  case 1900:

/* Line 1455 of yacc.c  */
#line 11709 "sql_yacc.yy"
    {}
    break;

  case 1901:

/* Line 1455 of yacc.c  */
#line 11710 "sql_yacc.yy"
    {}
    break;

  case 1902:

/* Line 1455 of yacc.c  */
#line 11711 "sql_yacc.yy"
    {}
    break;

  case 1903:

/* Line 1455 of yacc.c  */
#line 11712 "sql_yacc.yy"
    {}
    break;

  case 1904:

/* Line 1455 of yacc.c  */
#line 11713 "sql_yacc.yy"
    {}
    break;

  case 1905:

/* Line 1455 of yacc.c  */
#line 11714 "sql_yacc.yy"
    {}
    break;

  case 1906:

/* Line 1455 of yacc.c  */
#line 11715 "sql_yacc.yy"
    {}
    break;

  case 1907:

/* Line 1455 of yacc.c  */
#line 11716 "sql_yacc.yy"
    {}
    break;

  case 1908:

/* Line 1455 of yacc.c  */
#line 11717 "sql_yacc.yy"
    {}
    break;

  case 1909:

/* Line 1455 of yacc.c  */
#line 11718 "sql_yacc.yy"
    {}
    break;

  case 1910:

/* Line 1455 of yacc.c  */
#line 11719 "sql_yacc.yy"
    {}
    break;

  case 1911:

/* Line 1455 of yacc.c  */
#line 11720 "sql_yacc.yy"
    {}
    break;

  case 1912:

/* Line 1455 of yacc.c  */
#line 11721 "sql_yacc.yy"
    {}
    break;

  case 1913:

/* Line 1455 of yacc.c  */
#line 11722 "sql_yacc.yy"
    {}
    break;

  case 1914:

/* Line 1455 of yacc.c  */
#line 11723 "sql_yacc.yy"
    {}
    break;

  case 1915:

/* Line 1455 of yacc.c  */
#line 11724 "sql_yacc.yy"
    {}
    break;

  case 1916:

/* Line 1455 of yacc.c  */
#line 11725 "sql_yacc.yy"
    {}
    break;

  case 1917:

/* Line 1455 of yacc.c  */
#line 11726 "sql_yacc.yy"
    {}
    break;

  case 1918:

/* Line 1455 of yacc.c  */
#line 11727 "sql_yacc.yy"
    {}
    break;

  case 1919:

/* Line 1455 of yacc.c  */
#line 11728 "sql_yacc.yy"
    {}
    break;

  case 1920:

/* Line 1455 of yacc.c  */
#line 11729 "sql_yacc.yy"
    {}
    break;

  case 1921:

/* Line 1455 of yacc.c  */
#line 11730 "sql_yacc.yy"
    {}
    break;

  case 1922:

/* Line 1455 of yacc.c  */
#line 11731 "sql_yacc.yy"
    {}
    break;

  case 1923:

/* Line 1455 of yacc.c  */
#line 11732 "sql_yacc.yy"
    {}
    break;

  case 1924:

/* Line 1455 of yacc.c  */
#line 11733 "sql_yacc.yy"
    {}
    break;

  case 1925:

/* Line 1455 of yacc.c  */
#line 11734 "sql_yacc.yy"
    {}
    break;

  case 1926:

/* Line 1455 of yacc.c  */
#line 11735 "sql_yacc.yy"
    {}
    break;

  case 1927:

/* Line 1455 of yacc.c  */
#line 11736 "sql_yacc.yy"
    {}
    break;

  case 1928:

/* Line 1455 of yacc.c  */
#line 11737 "sql_yacc.yy"
    {}
    break;

  case 1929:

/* Line 1455 of yacc.c  */
#line 11738 "sql_yacc.yy"
    {}
    break;

  case 1930:

/* Line 1455 of yacc.c  */
#line 11739 "sql_yacc.yy"
    {}
    break;

  case 1931:

/* Line 1455 of yacc.c  */
#line 11740 "sql_yacc.yy"
    {}
    break;

  case 1932:

/* Line 1455 of yacc.c  */
#line 11741 "sql_yacc.yy"
    {}
    break;

  case 1933:

/* Line 1455 of yacc.c  */
#line 11742 "sql_yacc.yy"
    {}
    break;

  case 1934:

/* Line 1455 of yacc.c  */
#line 11743 "sql_yacc.yy"
    {}
    break;

  case 1935:

/* Line 1455 of yacc.c  */
#line 11744 "sql_yacc.yy"
    {}
    break;

  case 1936:

/* Line 1455 of yacc.c  */
#line 11745 "sql_yacc.yy"
    {}
    break;

  case 1937:

/* Line 1455 of yacc.c  */
#line 11746 "sql_yacc.yy"
    {}
    break;

  case 1938:

/* Line 1455 of yacc.c  */
#line 11747 "sql_yacc.yy"
    {}
    break;

  case 1939:

/* Line 1455 of yacc.c  */
#line 11748 "sql_yacc.yy"
    {}
    break;

  case 1940:

/* Line 1455 of yacc.c  */
#line 11749 "sql_yacc.yy"
    {}
    break;

  case 1941:

/* Line 1455 of yacc.c  */
#line 11750 "sql_yacc.yy"
    {}
    break;

  case 1942:

/* Line 1455 of yacc.c  */
#line 11751 "sql_yacc.yy"
    {}
    break;

  case 1943:

/* Line 1455 of yacc.c  */
#line 11752 "sql_yacc.yy"
    {}
    break;

  case 1944:

/* Line 1455 of yacc.c  */
#line 11753 "sql_yacc.yy"
    {}
    break;

  case 1945:

/* Line 1455 of yacc.c  */
#line 11754 "sql_yacc.yy"
    {}
    break;

  case 1946:

/* Line 1455 of yacc.c  */
#line 11755 "sql_yacc.yy"
    {}
    break;

  case 1947:

/* Line 1455 of yacc.c  */
#line 11756 "sql_yacc.yy"
    {}
    break;

  case 1948:

/* Line 1455 of yacc.c  */
#line 11757 "sql_yacc.yy"
    {}
    break;

  case 1949:

/* Line 1455 of yacc.c  */
#line 11758 "sql_yacc.yy"
    {}
    break;

  case 1950:

/* Line 1455 of yacc.c  */
#line 11759 "sql_yacc.yy"
    {}
    break;

  case 1951:

/* Line 1455 of yacc.c  */
#line 11760 "sql_yacc.yy"
    {}
    break;

  case 1952:

/* Line 1455 of yacc.c  */
#line 11761 "sql_yacc.yy"
    {}
    break;

  case 1953:

/* Line 1455 of yacc.c  */
#line 11762 "sql_yacc.yy"
    {}
    break;

  case 1954:

/* Line 1455 of yacc.c  */
#line 11763 "sql_yacc.yy"
    {}
    break;

  case 1955:

/* Line 1455 of yacc.c  */
#line 11764 "sql_yacc.yy"
    {}
    break;

  case 1956:

/* Line 1455 of yacc.c  */
#line 11765 "sql_yacc.yy"
    {}
    break;

  case 1957:

/* Line 1455 of yacc.c  */
#line 11766 "sql_yacc.yy"
    {}
    break;

  case 1958:

/* Line 1455 of yacc.c  */
#line 11767 "sql_yacc.yy"
    {}
    break;

  case 1959:

/* Line 1455 of yacc.c  */
#line 11768 "sql_yacc.yy"
    {}
    break;

  case 1960:

/* Line 1455 of yacc.c  */
#line 11769 "sql_yacc.yy"
    {}
    break;

  case 1961:

/* Line 1455 of yacc.c  */
#line 11770 "sql_yacc.yy"
    {}
    break;

  case 1962:

/* Line 1455 of yacc.c  */
#line 11771 "sql_yacc.yy"
    {}
    break;

  case 1963:

/* Line 1455 of yacc.c  */
#line 11772 "sql_yacc.yy"
    {}
    break;

  case 1964:

/* Line 1455 of yacc.c  */
#line 11773 "sql_yacc.yy"
    {}
    break;

  case 1965:

/* Line 1455 of yacc.c  */
#line 11774 "sql_yacc.yy"
    {}
    break;

  case 1966:

/* Line 1455 of yacc.c  */
#line 11775 "sql_yacc.yy"
    {}
    break;

  case 1967:

/* Line 1455 of yacc.c  */
#line 11776 "sql_yacc.yy"
    {}
    break;

  case 1968:

/* Line 1455 of yacc.c  */
#line 11777 "sql_yacc.yy"
    {}
    break;

  case 1969:

/* Line 1455 of yacc.c  */
#line 11778 "sql_yacc.yy"
    {}
    break;

  case 1970:

/* Line 1455 of yacc.c  */
#line 11779 "sql_yacc.yy"
    {}
    break;

  case 1971:

/* Line 1455 of yacc.c  */
#line 11780 "sql_yacc.yy"
    {}
    break;

  case 1972:

/* Line 1455 of yacc.c  */
#line 11781 "sql_yacc.yy"
    {}
    break;

  case 1973:

/* Line 1455 of yacc.c  */
#line 11782 "sql_yacc.yy"
    {}
    break;

  case 1974:

/* Line 1455 of yacc.c  */
#line 11783 "sql_yacc.yy"
    {}
    break;

  case 1975:

/* Line 1455 of yacc.c  */
#line 11784 "sql_yacc.yy"
    {}
    break;

  case 1976:

/* Line 1455 of yacc.c  */
#line 11785 "sql_yacc.yy"
    {}
    break;

  case 1977:

/* Line 1455 of yacc.c  */
#line 11786 "sql_yacc.yy"
    {}
    break;

  case 1978:

/* Line 1455 of yacc.c  */
#line 11787 "sql_yacc.yy"
    {}
    break;

  case 1979:

/* Line 1455 of yacc.c  */
#line 11788 "sql_yacc.yy"
    {}
    break;

  case 1980:

/* Line 1455 of yacc.c  */
#line 11789 "sql_yacc.yy"
    {}
    break;

  case 1981:

/* Line 1455 of yacc.c  */
#line 11790 "sql_yacc.yy"
    {}
    break;

  case 1982:

/* Line 1455 of yacc.c  */
#line 11791 "sql_yacc.yy"
    {}
    break;

  case 1983:

/* Line 1455 of yacc.c  */
#line 11792 "sql_yacc.yy"
    {}
    break;

  case 1984:

/* Line 1455 of yacc.c  */
#line 11793 "sql_yacc.yy"
    {}
    break;

  case 1985:

/* Line 1455 of yacc.c  */
#line 11794 "sql_yacc.yy"
    {}
    break;

  case 1986:

/* Line 1455 of yacc.c  */
#line 11795 "sql_yacc.yy"
    {}
    break;

  case 1987:

/* Line 1455 of yacc.c  */
#line 11796 "sql_yacc.yy"
    {}
    break;

  case 1988:

/* Line 1455 of yacc.c  */
#line 11797 "sql_yacc.yy"
    {}
    break;

  case 1989:

/* Line 1455 of yacc.c  */
#line 11798 "sql_yacc.yy"
    {}
    break;

  case 1990:

/* Line 1455 of yacc.c  */
#line 11799 "sql_yacc.yy"
    {}
    break;

  case 1991:

/* Line 1455 of yacc.c  */
#line 11800 "sql_yacc.yy"
    {}
    break;

  case 1992:

/* Line 1455 of yacc.c  */
#line 11801 "sql_yacc.yy"
    {}
    break;

  case 1993:

/* Line 1455 of yacc.c  */
#line 11802 "sql_yacc.yy"
    {}
    break;

  case 1994:

/* Line 1455 of yacc.c  */
#line 11803 "sql_yacc.yy"
    {}
    break;

  case 1995:

/* Line 1455 of yacc.c  */
#line 11804 "sql_yacc.yy"
    {}
    break;

  case 1996:

/* Line 1455 of yacc.c  */
#line 11805 "sql_yacc.yy"
    {}
    break;

  case 1997:

/* Line 1455 of yacc.c  */
#line 11806 "sql_yacc.yy"
    {}
    break;

  case 1998:

/* Line 1455 of yacc.c  */
#line 11807 "sql_yacc.yy"
    {}
    break;

  case 1999:

/* Line 1455 of yacc.c  */
#line 11808 "sql_yacc.yy"
    {}
    break;

  case 2000:

/* Line 1455 of yacc.c  */
#line 11809 "sql_yacc.yy"
    {}
    break;

  case 2001:

/* Line 1455 of yacc.c  */
#line 11810 "sql_yacc.yy"
    {}
    break;

  case 2002:

/* Line 1455 of yacc.c  */
#line 11811 "sql_yacc.yy"
    {}
    break;

  case 2003:

/* Line 1455 of yacc.c  */
#line 11812 "sql_yacc.yy"
    {}
    break;

  case 2004:

/* Line 1455 of yacc.c  */
#line 11813 "sql_yacc.yy"
    {}
    break;

  case 2005:

/* Line 1455 of yacc.c  */
#line 11814 "sql_yacc.yy"
    {}
    break;

  case 2006:

/* Line 1455 of yacc.c  */
#line 11815 "sql_yacc.yy"
    {}
    break;

  case 2007:

/* Line 1455 of yacc.c  */
#line 11816 "sql_yacc.yy"
    {}
    break;

  case 2008:

/* Line 1455 of yacc.c  */
#line 11817 "sql_yacc.yy"
    {}
    break;

  case 2009:

/* Line 1455 of yacc.c  */
#line 11818 "sql_yacc.yy"
    {}
    break;

  case 2010:

/* Line 1455 of yacc.c  */
#line 11819 "sql_yacc.yy"
    {}
    break;

  case 2011:

/* Line 1455 of yacc.c  */
#line 11820 "sql_yacc.yy"
    {}
    break;

  case 2012:

/* Line 1455 of yacc.c  */
#line 11821 "sql_yacc.yy"
    {}
    break;

  case 2013:

/* Line 1455 of yacc.c  */
#line 11822 "sql_yacc.yy"
    {}
    break;

  case 2014:

/* Line 1455 of yacc.c  */
#line 11823 "sql_yacc.yy"
    {}
    break;

  case 2015:

/* Line 1455 of yacc.c  */
#line 11824 "sql_yacc.yy"
    {}
    break;

  case 2016:

/* Line 1455 of yacc.c  */
#line 11825 "sql_yacc.yy"
    {}
    break;

  case 2017:

/* Line 1455 of yacc.c  */
#line 11826 "sql_yacc.yy"
    {}
    break;

  case 2018:

/* Line 1455 of yacc.c  */
#line 11827 "sql_yacc.yy"
    {}
    break;

  case 2019:

/* Line 1455 of yacc.c  */
#line 11828 "sql_yacc.yy"
    {}
    break;

  case 2020:

/* Line 1455 of yacc.c  */
#line 11829 "sql_yacc.yy"
    {}
    break;

  case 2021:

/* Line 1455 of yacc.c  */
#line 11830 "sql_yacc.yy"
    {}
    break;

  case 2022:

/* Line 1455 of yacc.c  */
#line 11831 "sql_yacc.yy"
    {}
    break;

  case 2023:

/* Line 1455 of yacc.c  */
#line 11832 "sql_yacc.yy"
    {}
    break;

  case 2024:

/* Line 1455 of yacc.c  */
#line 11833 "sql_yacc.yy"
    {}
    break;

  case 2025:

/* Line 1455 of yacc.c  */
#line 11834 "sql_yacc.yy"
    {}
    break;

  case 2026:

/* Line 1455 of yacc.c  */
#line 11835 "sql_yacc.yy"
    {}
    break;

  case 2027:

/* Line 1455 of yacc.c  */
#line 11836 "sql_yacc.yy"
    {}
    break;

  case 2028:

/* Line 1455 of yacc.c  */
#line 11837 "sql_yacc.yy"
    {}
    break;

  case 2029:

/* Line 1455 of yacc.c  */
#line 11838 "sql_yacc.yy"
    {}
    break;

  case 2030:

/* Line 1455 of yacc.c  */
#line 11839 "sql_yacc.yy"
    {}
    break;

  case 2031:

/* Line 1455 of yacc.c  */
#line 11840 "sql_yacc.yy"
    {}
    break;

  case 2032:

/* Line 1455 of yacc.c  */
#line 11841 "sql_yacc.yy"
    {}
    break;

  case 2033:

/* Line 1455 of yacc.c  */
#line 11842 "sql_yacc.yy"
    {}
    break;

  case 2034:

/* Line 1455 of yacc.c  */
#line 11843 "sql_yacc.yy"
    {}
    break;

  case 2035:

/* Line 1455 of yacc.c  */
#line 11844 "sql_yacc.yy"
    {}
    break;

  case 2036:

/* Line 1455 of yacc.c  */
#line 11845 "sql_yacc.yy"
    {}
    break;

  case 2037:

/* Line 1455 of yacc.c  */
#line 11846 "sql_yacc.yy"
    {}
    break;

  case 2038:

/* Line 1455 of yacc.c  */
#line 11847 "sql_yacc.yy"
    {}
    break;

  case 2039:

/* Line 1455 of yacc.c  */
#line 11848 "sql_yacc.yy"
    {}
    break;

  case 2040:

/* Line 1455 of yacc.c  */
#line 11849 "sql_yacc.yy"
    {}
    break;

  case 2041:

/* Line 1455 of yacc.c  */
#line 11850 "sql_yacc.yy"
    {}
    break;

  case 2042:

/* Line 1455 of yacc.c  */
#line 11851 "sql_yacc.yy"
    {}
    break;

  case 2043:

/* Line 1455 of yacc.c  */
#line 11852 "sql_yacc.yy"
    {}
    break;

  case 2044:

/* Line 1455 of yacc.c  */
#line 11853 "sql_yacc.yy"
    {}
    break;

  case 2045:

/* Line 1455 of yacc.c  */
#line 11854 "sql_yacc.yy"
    {}
    break;

  case 2046:

/* Line 1455 of yacc.c  */
#line 11855 "sql_yacc.yy"
    {}
    break;

  case 2047:

/* Line 1455 of yacc.c  */
#line 11856 "sql_yacc.yy"
    {}
    break;

  case 2048:

/* Line 1455 of yacc.c  */
#line 11857 "sql_yacc.yy"
    {}
    break;

  case 2049:

/* Line 1455 of yacc.c  */
#line 11858 "sql_yacc.yy"
    {}
    break;

  case 2050:

/* Line 1455 of yacc.c  */
#line 11859 "sql_yacc.yy"
    {}
    break;

  case 2051:

/* Line 1455 of yacc.c  */
#line 11860 "sql_yacc.yy"
    {}
    break;

  case 2052:

/* Line 1455 of yacc.c  */
#line 11861 "sql_yacc.yy"
    {}
    break;

  case 2053:

/* Line 1455 of yacc.c  */
#line 11862 "sql_yacc.yy"
    {}
    break;

  case 2054:

/* Line 1455 of yacc.c  */
#line 11863 "sql_yacc.yy"
    {}
    break;

  case 2055:

/* Line 1455 of yacc.c  */
#line 11864 "sql_yacc.yy"
    {}
    break;

  case 2056:

/* Line 1455 of yacc.c  */
#line 11865 "sql_yacc.yy"
    {}
    break;

  case 2057:

/* Line 1455 of yacc.c  */
#line 11866 "sql_yacc.yy"
    {}
    break;

  case 2058:

/* Line 1455 of yacc.c  */
#line 11867 "sql_yacc.yy"
    {}
    break;

  case 2059:

/* Line 1455 of yacc.c  */
#line 11868 "sql_yacc.yy"
    {}
    break;

  case 2060:

/* Line 1455 of yacc.c  */
#line 11869 "sql_yacc.yy"
    {}
    break;

  case 2061:

/* Line 1455 of yacc.c  */
#line 11870 "sql_yacc.yy"
    {}
    break;

  case 2062:

/* Line 1455 of yacc.c  */
#line 11871 "sql_yacc.yy"
    {}
    break;

  case 2063:

/* Line 1455 of yacc.c  */
#line 11872 "sql_yacc.yy"
    {}
    break;

  case 2064:

/* Line 1455 of yacc.c  */
#line 11873 "sql_yacc.yy"
    {}
    break;

  case 2065:

/* Line 1455 of yacc.c  */
#line 11874 "sql_yacc.yy"
    {}
    break;

  case 2066:

/* Line 1455 of yacc.c  */
#line 11875 "sql_yacc.yy"
    {}
    break;

  case 2067:

/* Line 1455 of yacc.c  */
#line 11876 "sql_yacc.yy"
    {}
    break;

  case 2068:

/* Line 1455 of yacc.c  */
#line 11877 "sql_yacc.yy"
    {}
    break;

  case 2069:

/* Line 1455 of yacc.c  */
#line 11878 "sql_yacc.yy"
    {}
    break;

  case 2070:

/* Line 1455 of yacc.c  */
#line 11879 "sql_yacc.yy"
    {}
    break;

  case 2071:

/* Line 1455 of yacc.c  */
#line 11880 "sql_yacc.yy"
    {}
    break;

  case 2072:

/* Line 1455 of yacc.c  */
#line 11881 "sql_yacc.yy"
    {}
    break;

  case 2073:

/* Line 1455 of yacc.c  */
#line 11882 "sql_yacc.yy"
    {}
    break;

  case 2074:

/* Line 1455 of yacc.c  */
#line 11883 "sql_yacc.yy"
    {}
    break;

  case 2075:

/* Line 1455 of yacc.c  */
#line 11884 "sql_yacc.yy"
    {}
    break;

  case 2076:

/* Line 1455 of yacc.c  */
#line 11885 "sql_yacc.yy"
    {}
    break;

  case 2077:

/* Line 1455 of yacc.c  */
#line 11886 "sql_yacc.yy"
    {}
    break;

  case 2078:

/* Line 1455 of yacc.c  */
#line 11887 "sql_yacc.yy"
    {}
    break;

  case 2079:

/* Line 1455 of yacc.c  */
#line 11888 "sql_yacc.yy"
    {}
    break;

  case 2080:

/* Line 1455 of yacc.c  */
#line 11889 "sql_yacc.yy"
    {}
    break;

  case 2081:

/* Line 1455 of yacc.c  */
#line 11890 "sql_yacc.yy"
    {}
    break;

  case 2082:

/* Line 1455 of yacc.c  */
#line 11891 "sql_yacc.yy"
    {}
    break;

  case 2083:

/* Line 1455 of yacc.c  */
#line 11892 "sql_yacc.yy"
    {}
    break;

  case 2084:

/* Line 1455 of yacc.c  */
#line 11893 "sql_yacc.yy"
    {}
    break;

  case 2085:

/* Line 1455 of yacc.c  */
#line 11894 "sql_yacc.yy"
    {}
    break;

  case 2086:

/* Line 1455 of yacc.c  */
#line 11895 "sql_yacc.yy"
    {}
    break;

  case 2087:

/* Line 1455 of yacc.c  */
#line 11896 "sql_yacc.yy"
    {}
    break;

  case 2088:

/* Line 1455 of yacc.c  */
#line 11897 "sql_yacc.yy"
    {}
    break;

  case 2089:

/* Line 1455 of yacc.c  */
#line 11898 "sql_yacc.yy"
    {}
    break;

  case 2090:

/* Line 1455 of yacc.c  */
#line 11899 "sql_yacc.yy"
    {}
    break;

  case 2091:

/* Line 1455 of yacc.c  */
#line 11900 "sql_yacc.yy"
    {}
    break;

  case 2092:

/* Line 1455 of yacc.c  */
#line 11901 "sql_yacc.yy"
    {}
    break;

  case 2093:

/* Line 1455 of yacc.c  */
#line 11902 "sql_yacc.yy"
    {}
    break;

  case 2094:

/* Line 1455 of yacc.c  */
#line 11903 "sql_yacc.yy"
    {}
    break;

  case 2095:

/* Line 1455 of yacc.c  */
#line 11904 "sql_yacc.yy"
    {}
    break;

  case 2096:

/* Line 1455 of yacc.c  */
#line 11911 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command= SQLCOM_SET_OPTION;
            mysql_init_select(lex);
            lex->option_type=OPT_SESSION;
            lex->var_list.empty();
            lex->one_shot_set= 0;
            lex->autocommit= 0;
          }
    break;

  case 2097:

/* Line 1455 of yacc.c  */
#line 11921 "sql_yacc.yy"
    {}
    break;

  case 2098:

/* Line 1455 of yacc.c  */
#line 11925 "sql_yacc.yy"
    {}
    break;

  case 2099:

/* Line 1455 of yacc.c  */
#line 11926 "sql_yacc.yy"
    {}
    break;

  case 2102:

/* Line 1455 of yacc.c  */
#line 11935 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            Lex_input_stream *lip= YYLIP;

            if (lex->sphead)
            {
              /*
                If we are in SP we want have own LEX for each assignment.
                This is mostly because it is hard for several sp_instr_set
                and sp_instr_set_trigger instructions share one LEX.
                (Well, it is theoretically possible but adds some extra
                overhead on preparation for execution stage and IMO less
                robust).

                QQ: May be we should simply prohibit group assignments in SP?
              */
              lex->sphead->reset_lex(thd);
              lex= thd->lex;

              /* Set new LEX as if we at start of set rule. */
              lex->sql_command= SQLCOM_SET_OPTION;
              mysql_init_select(lex);
              lex->option_type=OPT_SESSION;
              lex->var_list.empty();
              lex->one_shot_set= 0;
              lex->autocommit= 0;
              lex->sphead->m_tmp_query= lip->get_tok_start();
            }
          }
    break;

  case 2103:

/* Line 1455 of yacc.c  */
#line 11966 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            Lex_input_stream *lip= YYLIP;

            if (lex->sphead)
            {
              sp_head *sp= lex->sphead;

              if (!lex->var_list.is_empty())
              {
                /*
                  We have assignment to user or system variable or
                  option setting, so we should construct sp_instr_stmt
                  for it.
                */
                LEX_STRING qbuff;
                sp_instr_stmt *i;

                if (!(i= new sp_instr_stmt(sp->instructions(), lex->spcont,
                                           lex)))
                  MYSQL_YYABORT;

                /*
                  Extract the query statement from the tokenizer.  The
                  end is either lip->ptr, if there was no lookahead,
                  lip->tok_end otherwise.
                */
                if (yychar == YYEMPTY)
                  qbuff.length= lip->get_ptr() - sp->m_tmp_query;
                else
                  qbuff.length= lip->get_tok_end() - sp->m_tmp_query;

                if (!(qbuff.str= (char*) alloc_root(thd->mem_root,
                                                    qbuff.length + 5)))
                  MYSQL_YYABORT;

                strmake(strmake(qbuff.str, "SET ", 4), sp->m_tmp_query,
                        qbuff.length);
                qbuff.length+= 4;
                i->m_query= qbuff;
                if (sp->add_instr(i))
                  MYSQL_YYABORT;
              }
              if (lex->sphead->restore_lex(thd))
                MYSQL_YYABORT;
            }
          }
    break;

  case 2104:

/* Line 1455 of yacc.c  */
#line 12017 "sql_yacc.yy"
    {}
    break;

  case 2105:

/* Line 1455 of yacc.c  */
#line 12018 "sql_yacc.yy"
    { (yyval.var_type)=OPT_GLOBAL; }
    break;

  case 2106:

/* Line 1455 of yacc.c  */
#line 12019 "sql_yacc.yy"
    { (yyval.var_type)=OPT_SESSION; }
    break;

  case 2107:

/* Line 1455 of yacc.c  */
#line 12020 "sql_yacc.yy"
    { (yyval.var_type)=OPT_SESSION; }
    break;

  case 2108:

/* Line 1455 of yacc.c  */
#line 12024 "sql_yacc.yy"
    { (yyval.num)= OPT_DEFAULT; }
    break;

  case 2109:

/* Line 1455 of yacc.c  */
#line 12025 "sql_yacc.yy"
    { Lex->one_shot_set= 1; (yyval.num)= OPT_SESSION; }
    break;

  case 2110:

/* Line 1455 of yacc.c  */
#line 12029 "sql_yacc.yy"
    { (yyval.var_type)=OPT_SESSION; }
    break;

  case 2111:

/* Line 1455 of yacc.c  */
#line 12030 "sql_yacc.yy"
    { (yyval.var_type)=OPT_GLOBAL; }
    break;

  case 2112:

/* Line 1455 of yacc.c  */
#line 12031 "sql_yacc.yy"
    { (yyval.var_type)=OPT_SESSION; }
    break;

  case 2113:

/* Line 1455 of yacc.c  */
#line 12032 "sql_yacc.yy"
    { (yyval.var_type)=OPT_SESSION; }
    break;

  case 2114:

/* Line 1455 of yacc.c  */
#line 12036 "sql_yacc.yy"
    { (yyval.var_type)=OPT_DEFAULT; }
    break;

  case 2115:

/* Line 1455 of yacc.c  */
#line 12037 "sql_yacc.yy"
    { (yyval.var_type)=OPT_GLOBAL; }
    break;

  case 2116:

/* Line 1455 of yacc.c  */
#line 12038 "sql_yacc.yy"
    { (yyval.var_type)=OPT_SESSION; }
    break;

  case 2117:

/* Line 1455 of yacc.c  */
#line 12039 "sql_yacc.yy"
    { (yyval.var_type)=OPT_SESSION; }
    break;

  case 2120:

/* Line 1455 of yacc.c  */
#line 12049 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= Lex;
            LEX_STRING *name= &(yyvsp[(2) - (4)].variable).base_name;

            if ((yyvsp[(2) - (4)].variable).var == trg_new_row_fake_var)
            {
              /* We are in trigger and assigning value to field of new row */
              if ((yyvsp[(1) - (4)].var_type))
              {
                my_parse_error(ER(ER_SYNTAX_ERROR));
                MYSQL_YYABORT;
              }
              if (set_trigger_new_row(YYTHD, name, (yyvsp[(4) - (4)].item)))
                MYSQL_YYABORT;
            }
            else if ((yyvsp[(2) - (4)].variable).var)
            {
              if ((yyvsp[(1) - (4)].var_type))
                lex->option_type= (yyvsp[(1) - (4)].var_type);

              /* It is a system variable. */
              if (set_system_variable(thd, &(yyvsp[(2) - (4)].variable), lex->option_type, (yyvsp[(4) - (4)].item)))
                MYSQL_YYABORT;
            }
            else
            {
              sp_pcontext *spc= lex->spcont;
              sp_variable_t *spv= spc->find_variable(name);

              if ((yyvsp[(1) - (4)].var_type))
              {
                my_parse_error(ER(ER_SYNTAX_ERROR));
                MYSQL_YYABORT;
              }

              /* It is a local variable. */
              if (set_local_variable(thd, spv, (yyvsp[(4) - (4)].item)))
                MYSQL_YYABORT;
            }
          }
    break;

  case 2121:

/* Line 1455 of yacc.c  */
#line 12091 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex=Lex;
            lex->option_type= (yyvsp[(1) - (5)].var_type);
            Item *item= new (thd->mem_root) Item_int((int32) (yyvsp[(5) - (5)].tx_isolation));
            if (item == NULL)
              MYSQL_YYABORT;
            set_var *var= new set_var(lex->option_type,
                                      find_sys_var(thd, "tx_isolation"),
                                      &null_lex_str,
                                      item);
            if (var == NULL)
              MYSQL_YYABORT;
            lex->var_list.push_back(var);
          }
    break;

  case 2122:

/* Line 1455 of yacc.c  */
#line 12110 "sql_yacc.yy"
    {
            Item_func_set_user_var *item;
            item= new (YYTHD->mem_root) Item_func_set_user_var((yyvsp[(2) - (4)].lex_str), (yyvsp[(4) - (4)].item));
            if (item == NULL)
              MYSQL_YYABORT;
            set_var_user *var= new set_var_user(item);
            if (var == NULL)
              MYSQL_YYABORT;
            Lex->var_list.push_back(var);
          }
    break;

  case 2123:

/* Line 1455 of yacc.c  */
#line 12121 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            struct sys_var_with_base tmp= (yyvsp[(4) - (6)].variable);
            /* Lookup if necessary: must be a system variable. */
            if (tmp.var == NULL)
            {
              if (find_sys_var_null_base(thd, &tmp))
                MYSQL_YYABORT;
            }
            if (set_system_variable(thd, &tmp, (yyvsp[(3) - (6)].var_type), (yyvsp[(6) - (6)].item)))
              MYSQL_YYABORT;
          }
    break;

  case 2124:

/* Line 1455 of yacc.c  */
#line 12134 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            CHARSET_INFO *cs2;
            cs2= (yyvsp[(2) - (2)].charset) ? (yyvsp[(2) - (2)].charset): global_system_variables.character_set_client;
            set_var_collation_client *var;
            var= new set_var_collation_client(cs2,
                                              thd->variables.collation_database,
                                              cs2);
            if (var == NULL)
              MYSQL_YYABORT;
            lex->var_list.push_back(var);
          }
    break;

  case 2125:

/* Line 1455 of yacc.c  */
#line 12148 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_pcontext *spc= lex->spcont;
            LEX_STRING names;

            names.str= (char *)"names";
            names.length= 5;
            if (spc && spc->find_variable(&names))
              my_error(ER_SP_BAD_VAR_SHADOW, MYF(0), names.str);
            else
              my_parse_error(ER(ER_SYNTAX_ERROR));

            MYSQL_YYABORT;
          }
    break;

  case 2126:

/* Line 1455 of yacc.c  */
#line 12163 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            CHARSET_INFO *cs2;
            CHARSET_INFO *cs3;
            cs2= (yyvsp[(2) - (3)].charset) ? (yyvsp[(2) - (3)].charset) : global_system_variables.character_set_client;
            cs3= (yyvsp[(3) - (3)].charset) ? (yyvsp[(3) - (3)].charset) : cs2;
            if (!my_charset_same(cs2, cs3))
            {
              my_error(ER_COLLATION_CHARSET_MISMATCH, MYF(0),
                       cs3->name, cs2->csname);
              MYSQL_YYABORT;
            }
            set_var_collation_client *var;
            var= new set_var_collation_client(cs3, cs3, cs3);
            if (var == NULL)
              MYSQL_YYABORT;
            lex->var_list.push_back(var);
          }
    break;

  case 2127:

/* Line 1455 of yacc.c  */
#line 12182 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            LEX_USER *user;
            sp_pcontext *spc= lex->spcont;
            LEX_STRING pw;

            pw.str= (char *)"password";
            pw.length= 8;
            if (spc && spc->find_variable(&pw))
            {
              my_error(ER_SP_BAD_VAR_SHADOW, MYF(0), pw.str);
              MYSQL_YYABORT;
            }
            if (!(user=(LEX_USER*) thd->alloc(sizeof(LEX_USER))))
              MYSQL_YYABORT;
            user->host=null_lex_str;
            user->user.str=thd->security_ctx->priv_user;
            set_var_password *var= new set_var_password(user, (yyvsp[(3) - (3)].simple_string));
            if (var == NULL)
              MYSQL_YYABORT;
            thd->lex->var_list.push_back(var);
            thd->lex->autocommit= TRUE;
            if (lex->sphead)
              lex->sphead->m_flags|= sp_head::HAS_SET_AUTOCOMMIT_STMT;
          }
    break;

  case 2128:

/* Line 1455 of yacc.c  */
#line 12209 "sql_yacc.yy"
    {
            set_var_password *var= new set_var_password((yyvsp[(3) - (5)].lex_user),(yyvsp[(5) - (5)].simple_string));
            if (var == NULL)
              MYSQL_YYABORT;
            Lex->var_list.push_back(var);
            Lex->autocommit= TRUE;
            if (Lex->sphead)
              Lex->sphead->m_flags|= sp_head::HAS_SET_AUTOCOMMIT_STMT;
          }
    break;

  case 2129:

/* Line 1455 of yacc.c  */
#line 12222 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            sp_pcontext *spc= thd->lex->spcont;
            sp_variable_t *spv;

            /* Best effort lookup for system variable. */
            if (!spc || !(spv = spc->find_variable(&(yyvsp[(1) - (1)].lex_str))))
            {
              struct sys_var_with_base tmp= {NULL, (yyvsp[(1) - (1)].lex_str)};

              /* Not an SP local variable */
              if (find_sys_var_null_base(thd, &tmp))
                MYSQL_YYABORT;

              (yyval.variable)= tmp;
            }
            else
            {
              /*
                Possibly an SP local variable (or a shadowed sysvar).
                Will depend on the context of the SET statement.
              */
              (yyval.variable).var= NULL;
              (yyval.variable).base_name= (yyvsp[(1) - (1)].lex_str);
            }
          }
    break;

  case 2130:

/* Line 1455 of yacc.c  */
#line 12249 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (check_reserved_words(&(yyvsp[(1) - (3)].lex_str)))
            {
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
            if (lex->sphead && lex->sphead->m_type == TYPE_ENUM_TRIGGER &&
                (!my_strcasecmp(system_charset_info, (yyvsp[(1) - (3)].lex_str).str, "NEW") || 
                 !my_strcasecmp(system_charset_info, (yyvsp[(1) - (3)].lex_str).str, "OLD")))
            {
              if ((yyvsp[(1) - (3)].lex_str).str[0]=='O' || (yyvsp[(1) - (3)].lex_str).str[0]=='o')
              {
                my_error(ER_TRG_CANT_CHANGE_ROW, MYF(0), "OLD", "");
                MYSQL_YYABORT;
              }
              if (lex->trg_chistics.event == TRG_EVENT_DELETE)
              {
                my_error(ER_TRG_NO_SUCH_ROW_IN_TRG, MYF(0),
                         "NEW", "on DELETE");
                MYSQL_YYABORT;
              }
              if (lex->trg_chistics.action_time == TRG_ACTION_AFTER)
              {
                my_error(ER_TRG_CANT_CHANGE_ROW, MYF(0), "NEW", "after ");
                MYSQL_YYABORT;
              }
              /* This special combination will denote field of NEW row */
              (yyval.variable).var= trg_new_row_fake_var;
              (yyval.variable).base_name= (yyvsp[(3) - (3)].lex_str);
            }
            else
            {
              sys_var *tmp=find_sys_var(YYTHD, (yyvsp[(3) - (3)].lex_str).str, (yyvsp[(3) - (3)].lex_str).length);
              if (!tmp)
                MYSQL_YYABORT;
              if (!tmp->is_struct())
                my_error(ER_VARIABLE_IS_NOT_STRUCT, MYF(0), (yyvsp[(3) - (3)].lex_str).str);
              (yyval.variable).var= tmp;
              (yyval.variable).base_name= (yyvsp[(1) - (3)].lex_str);
            }
          }
    break;

  case 2131:

/* Line 1455 of yacc.c  */
#line 12292 "sql_yacc.yy"
    {
            sys_var *tmp=find_sys_var(YYTHD, (yyvsp[(3) - (3)].lex_str).str, (yyvsp[(3) - (3)].lex_str).length);
            if (!tmp)
              MYSQL_YYABORT;
            if (!tmp->is_struct())
              my_error(ER_VARIABLE_IS_NOT_STRUCT, MYF(0), (yyvsp[(3) - (3)].lex_str).str);
            (yyval.variable).var= tmp;
            (yyval.variable).base_name.str=    (char*) "default";
            (yyval.variable).base_name.length= 7;
          }
    break;

  case 2132:

/* Line 1455 of yacc.c  */
#line 12305 "sql_yacc.yy"
    { (yyval.tx_isolation)= ISO_READ_UNCOMMITTED; }
    break;

  case 2133:

/* Line 1455 of yacc.c  */
#line 12306 "sql_yacc.yy"
    { (yyval.tx_isolation)= ISO_READ_COMMITTED; }
    break;

  case 2134:

/* Line 1455 of yacc.c  */
#line 12307 "sql_yacc.yy"
    { (yyval.tx_isolation)= ISO_REPEATABLE_READ; }
    break;

  case 2135:

/* Line 1455 of yacc.c  */
#line 12308 "sql_yacc.yy"
    { (yyval.tx_isolation)= ISO_SERIALIZABLE; }
    break;

  case 2136:

/* Line 1455 of yacc.c  */
#line 12312 "sql_yacc.yy"
    { (yyval.simple_string)=(yyvsp[(1) - (1)].lex_str).str;}
    break;

  case 2137:

/* Line 1455 of yacc.c  */
#line 12314 "sql_yacc.yy"
    {
            (yyval.simple_string)= (yyvsp[(3) - (4)].lex_str).length ? YYTHD->variables.old_passwords ?
              Item_func_old_password::alloc(YYTHD, (yyvsp[(3) - (4)].lex_str).str, (yyvsp[(3) - (4)].lex_str).length) :
              Item_func_password::alloc(YYTHD, (yyvsp[(3) - (4)].lex_str).str, (yyvsp[(3) - (4)].lex_str).length) :
              (yyvsp[(3) - (4)].lex_str).str;
            if ((yyval.simple_string) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 2138:

/* Line 1455 of yacc.c  */
#line 12323 "sql_yacc.yy"
    {
            (yyval.simple_string)= (yyvsp[(3) - (4)].lex_str).length ? Item_func_old_password::alloc(YYTHD, (yyvsp[(3) - (4)].lex_str).str,
                                                          (yyvsp[(3) - (4)].lex_str).length) :
              (yyvsp[(3) - (4)].lex_str).str;
            if ((yyval.simple_string) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 2139:

/* Line 1455 of yacc.c  */
#line 12334 "sql_yacc.yy"
    { (yyval.item)=(yyvsp[(1) - (1)].item); }
    break;

  case 2140:

/* Line 1455 of yacc.c  */
#line 12335 "sql_yacc.yy"
    { (yyval.item)=0; }
    break;

  case 2141:

/* Line 1455 of yacc.c  */
#line 12337 "sql_yacc.yy"
    {
            (yyval.item)=new (YYTHD->mem_root) Item_string("ON",  2, system_charset_info);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 2142:

/* Line 1455 of yacc.c  */
#line 12343 "sql_yacc.yy"
    {
            (yyval.item)=new (YYTHD->mem_root) Item_string("ALL", 3, system_charset_info);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 2143:

/* Line 1455 of yacc.c  */
#line 12349 "sql_yacc.yy"
    {
            (yyval.item)=new (YYTHD->mem_root) Item_string("binary", 6, system_charset_info);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 2144:

/* Line 1455 of yacc.c  */
#line 12360 "sql_yacc.yy"
    {
            LEX *lex= Lex;

            if (lex->sphead)
            {
              my_error(ER_SP_BADSTATEMENT, MYF(0), "LOCK");
              MYSQL_YYABORT;
            }
            lex->sql_command= SQLCOM_LOCK_TABLES;
          }
    break;

  case 2145:

/* Line 1455 of yacc.c  */
#line 12371 "sql_yacc.yy"
    {}
    break;

  case 2150:

/* Line 1455 of yacc.c  */
#line 12386 "sql_yacc.yy"
    {
            thr_lock_type lock_type= (thr_lock_type) (yyvsp[(3) - (3)].num);
            if (!Select->add_table_to_list(YYTHD, (yyvsp[(1) - (3)].table), (yyvsp[(2) - (3)].lex_str_ptr), 0, lock_type))
              MYSQL_YYABORT;
            /* If table is to be write locked, protect from a impending GRL. */
            if (lock_type >= TL_WRITE_ALLOW_WRITE)
              Lex->protect_against_global_read_lock= TRUE;
          }
    break;

  case 2151:

/* Line 1455 of yacc.c  */
#line 12397 "sql_yacc.yy"
    { (yyval.num)= TL_READ_NO_INSERT; }
    break;

  case 2152:

/* Line 1455 of yacc.c  */
#line 12398 "sql_yacc.yy"
    { (yyval.num)= TL_WRITE_DEFAULT; }
    break;

  case 2153:

/* Line 1455 of yacc.c  */
#line 12399 "sql_yacc.yy"
    { (yyval.num)= TL_WRITE_LOW_PRIORITY; }
    break;

  case 2154:

/* Line 1455 of yacc.c  */
#line 12400 "sql_yacc.yy"
    { (yyval.num)= TL_READ; }
    break;

  case 2155:

/* Line 1455 of yacc.c  */
#line 12405 "sql_yacc.yy"
    {
            LEX *lex= Lex;

            if (lex->sphead)
            {
              my_error(ER_SP_BADSTATEMENT, MYF(0), "UNLOCK");
              MYSQL_YYABORT;
            }
            lex->sql_command= SQLCOM_UNLOCK_TABLES;
          }
    break;

  case 2156:

/* Line 1455 of yacc.c  */
#line 12416 "sql_yacc.yy"
    {}
    break;

  case 2157:

/* Line 1455 of yacc.c  */
#line 12425 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (lex->sphead)
            {
              my_error(ER_SP_BADSTATEMENT, MYF(0), "HANDLER");
              MYSQL_YYABORT;
            }
            lex->sql_command = SQLCOM_HA_OPEN;
            if (!lex->current_select->add_table_to_list(lex->thd, (yyvsp[(2) - (4)].table), (yyvsp[(4) - (4)].lex_str_ptr), 0))
              MYSQL_YYABORT;
          }
    break;

  case 2158:

/* Line 1455 of yacc.c  */
#line 12437 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (lex->sphead)
            {
              my_error(ER_SP_BADSTATEMENT, MYF(0), "HANDLER");
              MYSQL_YYABORT;
            }
            lex->sql_command = SQLCOM_HA_CLOSE;
            if (!lex->current_select->add_table_to_list(lex->thd, (yyvsp[(2) - (3)].table), 0, 0))
              MYSQL_YYABORT;
          }
    break;

  case 2159:

/* Line 1455 of yacc.c  */
#line 12449 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            if (lex->sphead)
            {
              my_error(ER_SP_BADSTATEMENT, MYF(0), "HANDLER");
              MYSQL_YYABORT;
            }
            lex->expr_allows_subselect= FALSE;
            lex->sql_command = SQLCOM_HA_READ;
            lex->ha_rkey_mode= HA_READ_KEY_EXACT; /* Avoid purify warnings */
            Item *one= new (YYTHD->mem_root) Item_int((int32) 1);
            if (one == NULL)
              MYSQL_YYABORT;
            lex->current_select->select_limit= one;
            lex->current_select->offset_limit= 0;
            if (!lex->current_select->add_table_to_list(lex->thd, (yyvsp[(2) - (3)].table), 0, 0))
              MYSQL_YYABORT;
          }
    break;

  case 2160:

/* Line 1455 of yacc.c  */
#line 12468 "sql_yacc.yy"
    {
            Lex->expr_allows_subselect= TRUE;
          }
    break;

  case 2161:

/* Line 1455 of yacc.c  */
#line 12474 "sql_yacc.yy"
    { Lex->ident= null_lex_str; }
    break;

  case 2162:

/* Line 1455 of yacc.c  */
#line 12475 "sql_yacc.yy"
    { Lex->ident= (yyvsp[(1) - (2)].lex_str); }
    break;

  case 2163:

/* Line 1455 of yacc.c  */
#line 12479 "sql_yacc.yy"
    { Lex->ha_read_mode = RFIRST; }
    break;

  case 2164:

/* Line 1455 of yacc.c  */
#line 12480 "sql_yacc.yy"
    { Lex->ha_read_mode = RNEXT;  }
    break;

  case 2165:

/* Line 1455 of yacc.c  */
#line 12484 "sql_yacc.yy"
    { Lex->ha_read_mode = RFIRST; }
    break;

  case 2166:

/* Line 1455 of yacc.c  */
#line 12485 "sql_yacc.yy"
    { Lex->ha_read_mode = RNEXT;  }
    break;

  case 2167:

/* Line 1455 of yacc.c  */
#line 12486 "sql_yacc.yy"
    { Lex->ha_read_mode = RPREV;  }
    break;

  case 2168:

/* Line 1455 of yacc.c  */
#line 12487 "sql_yacc.yy"
    { Lex->ha_read_mode = RLAST;  }
    break;

  case 2169:

/* Line 1455 of yacc.c  */
#line 12489 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->ha_read_mode = RKEY;
            lex->ha_rkey_mode=(yyvsp[(1) - (1)].ha_rkey_mode);
            if (!(lex->insert_list = new List_item))
              MYSQL_YYABORT;
          }
    break;

  case 2170:

/* Line 1455 of yacc.c  */
#line 12497 "sql_yacc.yy"
    {}
    break;

  case 2171:

/* Line 1455 of yacc.c  */
#line 12501 "sql_yacc.yy"
    { (yyval.ha_rkey_mode)=HA_READ_KEY_EXACT;   }
    break;

  case 2172:

/* Line 1455 of yacc.c  */
#line 12502 "sql_yacc.yy"
    { (yyval.ha_rkey_mode)=HA_READ_KEY_OR_NEXT; }
    break;

  case 2173:

/* Line 1455 of yacc.c  */
#line 12503 "sql_yacc.yy"
    { (yyval.ha_rkey_mode)=HA_READ_KEY_OR_PREV; }
    break;

  case 2174:

/* Line 1455 of yacc.c  */
#line 12504 "sql_yacc.yy"
    { (yyval.ha_rkey_mode)=HA_READ_AFTER_KEY;   }
    break;

  case 2175:

/* Line 1455 of yacc.c  */
#line 12505 "sql_yacc.yy"
    { (yyval.ha_rkey_mode)=HA_READ_BEFORE_KEY;  }
    break;

  case 2176:

/* Line 1455 of yacc.c  */
#line 12512 "sql_yacc.yy"
    {}
    break;

  case 2177:

/* Line 1455 of yacc.c  */
#line 12517 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_REVOKE;
            lex->type= 0;
          }
    break;

  case 2178:

/* Line 1455 of yacc.c  */
#line 12523 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (lex->columns.elements)
            {
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
            lex->sql_command= SQLCOM_REVOKE;
            lex->type= TYPE_ENUM_FUNCTION;
          }
    break;

  case 2179:

/* Line 1455 of yacc.c  */
#line 12534 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (lex->columns.elements)
            {
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
            lex->sql_command= SQLCOM_REVOKE;
            lex->type= TYPE_ENUM_PROCEDURE;
          }
    break;

  case 2180:

/* Line 1455 of yacc.c  */
#line 12545 "sql_yacc.yy"
    {
            Lex->sql_command = SQLCOM_REVOKE_ALL;
          }
    break;

  case 2181:

/* Line 1455 of yacc.c  */
#line 12552 "sql_yacc.yy"
    {}
    break;

  case 2182:

/* Line 1455 of yacc.c  */
#line 12558 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_GRANT;
            lex->type= 0;
          }
    break;

  case 2183:

/* Line 1455 of yacc.c  */
#line 12565 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (lex->columns.elements)
            {
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
            lex->sql_command= SQLCOM_GRANT;
            lex->type= TYPE_ENUM_FUNCTION;
          }
    break;

  case 2184:

/* Line 1455 of yacc.c  */
#line 12577 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (lex->columns.elements)
            {
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
            lex->sql_command= SQLCOM_GRANT;
            lex->type= TYPE_ENUM_PROCEDURE;
          }
    break;

  case 2187:

/* Line 1455 of yacc.c  */
#line 12595 "sql_yacc.yy"
    {}
    break;

  case 2188:

/* Line 1455 of yacc.c  */
#line 12597 "sql_yacc.yy"
    { 
            Lex->all_privileges= 1; 
            Lex->grant= GLOBAL_ACLS;
          }
    break;

  case 2193:

/* Line 1455 of yacc.c  */
#line 12615 "sql_yacc.yy"
    { Lex->which_columns = SELECT_ACL;}
    break;

  case 2194:

/* Line 1455 of yacc.c  */
#line 12616 "sql_yacc.yy"
    {}
    break;

  case 2195:

/* Line 1455 of yacc.c  */
#line 12618 "sql_yacc.yy"
    { Lex->which_columns = INSERT_ACL;}
    break;

  case 2196:

/* Line 1455 of yacc.c  */
#line 12619 "sql_yacc.yy"
    {}
    break;

  case 2197:

/* Line 1455 of yacc.c  */
#line 12621 "sql_yacc.yy"
    { Lex->which_columns = UPDATE_ACL; }
    break;

  case 2198:

/* Line 1455 of yacc.c  */
#line 12622 "sql_yacc.yy"
    {}
    break;

  case 2199:

/* Line 1455 of yacc.c  */
#line 12624 "sql_yacc.yy"
    { Lex->which_columns = REFERENCES_ACL;}
    break;

  case 2200:

/* Line 1455 of yacc.c  */
#line 12625 "sql_yacc.yy"
    {}
    break;

  case 2201:

/* Line 1455 of yacc.c  */
#line 12626 "sql_yacc.yy"
    { Lex->grant |= DELETE_ACL;}
    break;

  case 2202:

/* Line 1455 of yacc.c  */
#line 12627 "sql_yacc.yy"
    {}
    break;

  case 2203:

/* Line 1455 of yacc.c  */
#line 12628 "sql_yacc.yy"
    { Lex->grant |= INDEX_ACL;}
    break;

  case 2204:

/* Line 1455 of yacc.c  */
#line 12629 "sql_yacc.yy"
    { Lex->grant |= ALTER_ACL;}
    break;

  case 2205:

/* Line 1455 of yacc.c  */
#line 12630 "sql_yacc.yy"
    { Lex->grant |= CREATE_ACL;}
    break;

  case 2206:

/* Line 1455 of yacc.c  */
#line 12631 "sql_yacc.yy"
    { Lex->grant |= DROP_ACL;}
    break;

  case 2207:

/* Line 1455 of yacc.c  */
#line 12632 "sql_yacc.yy"
    { Lex->grant |= EXECUTE_ACL;}
    break;

  case 2208:

/* Line 1455 of yacc.c  */
#line 12633 "sql_yacc.yy"
    { Lex->grant |= RELOAD_ACL;}
    break;

  case 2209:

/* Line 1455 of yacc.c  */
#line 12634 "sql_yacc.yy"
    { Lex->grant |= SHUTDOWN_ACL;}
    break;

  case 2210:

/* Line 1455 of yacc.c  */
#line 12635 "sql_yacc.yy"
    { Lex->grant |= PROCESS_ACL;}
    break;

  case 2211:

/* Line 1455 of yacc.c  */
#line 12636 "sql_yacc.yy"
    { Lex->grant |= FILE_ACL;}
    break;

  case 2212:

/* Line 1455 of yacc.c  */
#line 12637 "sql_yacc.yy"
    { Lex->grant |= GRANT_ACL;}
    break;

  case 2213:

/* Line 1455 of yacc.c  */
#line 12638 "sql_yacc.yy"
    { Lex->grant |= SHOW_DB_ACL;}
    break;

  case 2214:

/* Line 1455 of yacc.c  */
#line 12639 "sql_yacc.yy"
    { Lex->grant |= SUPER_ACL;}
    break;

  case 2215:

/* Line 1455 of yacc.c  */
#line 12640 "sql_yacc.yy"
    { Lex->grant |= CREATE_TMP_ACL;}
    break;

  case 2216:

/* Line 1455 of yacc.c  */
#line 12641 "sql_yacc.yy"
    { Lex->grant |= LOCK_TABLES_ACL; }
    break;

  case 2217:

/* Line 1455 of yacc.c  */
#line 12642 "sql_yacc.yy"
    { Lex->grant |= REPL_SLAVE_ACL; }
    break;

  case 2218:

/* Line 1455 of yacc.c  */
#line 12643 "sql_yacc.yy"
    { Lex->grant |= REPL_CLIENT_ACL; }
    break;

  case 2219:

/* Line 1455 of yacc.c  */
#line 12644 "sql_yacc.yy"
    { Lex->grant |= CREATE_VIEW_ACL; }
    break;

  case 2220:

/* Line 1455 of yacc.c  */
#line 12645 "sql_yacc.yy"
    { Lex->grant |= SHOW_VIEW_ACL; }
    break;

  case 2221:

/* Line 1455 of yacc.c  */
#line 12646 "sql_yacc.yy"
    { Lex->grant |= CREATE_PROC_ACL; }
    break;

  case 2222:

/* Line 1455 of yacc.c  */
#line 12647 "sql_yacc.yy"
    { Lex->grant |= ALTER_PROC_ACL; }
    break;

  case 2223:

/* Line 1455 of yacc.c  */
#line 12648 "sql_yacc.yy"
    { Lex->grant |= CREATE_USER_ACL; }
    break;

  case 2224:

/* Line 1455 of yacc.c  */
#line 12649 "sql_yacc.yy"
    { Lex->grant |= EVENT_ACL;}
    break;

  case 2225:

/* Line 1455 of yacc.c  */
#line 12650 "sql_yacc.yy"
    { Lex->grant |= TRIGGER_ACL; }
    break;

  case 2226:

/* Line 1455 of yacc.c  */
#line 12654 "sql_yacc.yy"
    {}
    break;

  case 2227:

/* Line 1455 of yacc.c  */
#line 12655 "sql_yacc.yy"
    {}
    break;

  case 2230:

/* Line 1455 of yacc.c  */
#line 12665 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            if (lex->x509_subject)
            {
              my_error(ER_DUP_ARGUMENT, MYF(0), "SUBJECT");
              MYSQL_YYABORT;
            }
            lex->x509_subject=(yyvsp[(2) - (2)].lex_str).str;
          }
    break;

  case 2231:

/* Line 1455 of yacc.c  */
#line 12675 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            if (lex->x509_issuer)
            {
              my_error(ER_DUP_ARGUMENT, MYF(0), "ISSUER");
              MYSQL_YYABORT;
            }
            lex->x509_issuer=(yyvsp[(2) - (2)].lex_str).str;
          }
    break;

  case 2232:

/* Line 1455 of yacc.c  */
#line 12685 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            if (lex->ssl_cipher)
            {
              my_error(ER_DUP_ARGUMENT, MYF(0), "CIPHER");
              MYSQL_YYABORT;
            }
            lex->ssl_cipher=(yyvsp[(2) - (2)].lex_str).str;
          }
    break;

  case 2233:

/* Line 1455 of yacc.c  */
#line 12698 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            size_t dummy;
            if (lex->copy_db_to(&lex->current_select->db, &dummy))
              MYSQL_YYABORT;
            if (lex->grant == GLOBAL_ACLS)
              lex->grant = DB_ACLS & ~GRANT_ACL;
            else if (lex->columns.elements)
            {
              my_message(ER_ILLEGAL_GRANT_FOR_TABLE,
                         ER(ER_ILLEGAL_GRANT_FOR_TABLE), MYF(0));
              MYSQL_YYABORT;
            }
          }
    break;

  case 2234:

/* Line 1455 of yacc.c  */
#line 12713 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->current_select->db = (yyvsp[(1) - (3)].lex_str).str;
            if (lex->grant == GLOBAL_ACLS)
              lex->grant = DB_ACLS & ~GRANT_ACL;
            else if (lex->columns.elements)
            {
              my_message(ER_ILLEGAL_GRANT_FOR_TABLE,
                         ER(ER_ILLEGAL_GRANT_FOR_TABLE), MYF(0));
              MYSQL_YYABORT;
            }
          }
    break;

  case 2235:

/* Line 1455 of yacc.c  */
#line 12726 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->current_select->db = NULL;
            if (lex->grant == GLOBAL_ACLS)
              lex->grant= GLOBAL_ACLS & ~GRANT_ACL;
            else if (lex->columns.elements)
            {
              my_message(ER_ILLEGAL_GRANT_FOR_TABLE,
                         ER(ER_ILLEGAL_GRANT_FOR_TABLE), MYF(0));
              MYSQL_YYABORT;
            }
          }
    break;

  case 2236:

/* Line 1455 of yacc.c  */
#line 12739 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            if (!lex->current_select->add_table_to_list(lex->thd, (yyvsp[(1) - (1)].table),NULL,
                                                        TL_OPTION_UPDATING))
              MYSQL_YYABORT;
            if (lex->grant == GLOBAL_ACLS)
              lex->grant =  TABLE_ACLS & ~GRANT_ACL;
          }
    break;

  case 2237:

/* Line 1455 of yacc.c  */
#line 12751 "sql_yacc.yy"
    {
            if (Lex->users_list.push_back((yyvsp[(1) - (1)].lex_user)))
              MYSQL_YYABORT;
          }
    break;

  case 2238:

/* Line 1455 of yacc.c  */
#line 12756 "sql_yacc.yy"
    {
            if (Lex->users_list.push_back((yyvsp[(3) - (3)].lex_user)))
              MYSQL_YYABORT;
          }
    break;

  case 2239:

/* Line 1455 of yacc.c  */
#line 12764 "sql_yacc.yy"
    {
            if (Lex->users_list.push_back((yyvsp[(1) - (1)].lex_user)))
              MYSQL_YYABORT;
          }
    break;

  case 2240:

/* Line 1455 of yacc.c  */
#line 12769 "sql_yacc.yy"
    {
            if (Lex->users_list.push_back((yyvsp[(3) - (3)].lex_user)))
              MYSQL_YYABORT;
          }
    break;

  case 2241:

/* Line 1455 of yacc.c  */
#line 12777 "sql_yacc.yy"
    {
            (yyval.lex_user)=(yyvsp[(1) - (4)].lex_user); (yyvsp[(1) - (4)].lex_user)->password=(yyvsp[(4) - (4)].lex_str);
            if ((yyvsp[(4) - (4)].lex_str).length)
            {
              if (YYTHD->variables.old_passwords)
              {
                char *buff= 
                  (char *) YYTHD->alloc(SCRAMBLED_PASSWORD_CHAR_LENGTH_323+1);
                if (buff == NULL)
                  MYSQL_YYABORT;
                my_make_scrambled_password_323(buff, (yyvsp[(4) - (4)].lex_str).str, (yyvsp[(4) - (4)].lex_str).length);
                (yyvsp[(1) - (4)].lex_user)->password.str= buff;
                (yyvsp[(1) - (4)].lex_user)->password.length= SCRAMBLED_PASSWORD_CHAR_LENGTH_323;
              }
              else
              {
                char *buff= 
                  (char *) YYTHD->alloc(SCRAMBLED_PASSWORD_CHAR_LENGTH+1);
                if (buff == NULL)
                  MYSQL_YYABORT;
                my_make_scrambled_password(buff, (yyvsp[(4) - (4)].lex_str).str, (yyvsp[(4) - (4)].lex_str).length);
                (yyvsp[(1) - (4)].lex_user)->password.str= buff;
                (yyvsp[(1) - (4)].lex_user)->password.length= SCRAMBLED_PASSWORD_CHAR_LENGTH;
              }
            }
          }
    break;

  case 2242:

/* Line 1455 of yacc.c  */
#line 12804 "sql_yacc.yy"
    { (yyval.lex_user)= (yyvsp[(1) - (5)].lex_user); (yyvsp[(1) - (5)].lex_user)->password= (yyvsp[(5) - (5)].lex_str); }
    break;

  case 2243:

/* Line 1455 of yacc.c  */
#line 12806 "sql_yacc.yy"
    { (yyval.lex_user)= (yyvsp[(1) - (1)].lex_user); (yyvsp[(1) - (1)].lex_user)->password= null_lex_str; }
    break;

  case 2244:

/* Line 1455 of yacc.c  */
#line 12811 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->grant |= lex->which_columns;
          }
    break;

  case 2248:

/* Line 1455 of yacc.c  */
#line 12825 "sql_yacc.yy"
    {
            String *new_str = new (YYTHD->mem_root) String((const char*) (yyvsp[(1) - (1)].lex_str).str,(yyvsp[(1) - (1)].lex_str).length,system_charset_info);
            if (new_str == NULL)
              MYSQL_YYABORT;
            List_iterator <LEX_COLUMN> iter(Lex->columns);
            class LEX_COLUMN *point;
            LEX *lex=Lex;
            while ((point=iter++))
            {
              if (!my_strcasecmp(system_charset_info,
                                 point->column.ptr(), new_str->ptr()))
                break;
            }
            lex->grant_tot_col|= lex->which_columns;
            if (point)
              point->rights |= lex->which_columns;
            else
            {
              LEX_COLUMN *col= new LEX_COLUMN (*new_str,lex->which_columns);
              if (col == NULL)
                MYSQL_YYABORT;
              lex->columns.push_back(col);
            }
          }
    break;

  case 2250:

/* Line 1455 of yacc.c  */
#line 12854 "sql_yacc.yy"
    {
            Lex->ssl_type=SSL_TYPE_SPECIFIED;
          }
    break;

  case 2251:

/* Line 1455 of yacc.c  */
#line 12858 "sql_yacc.yy"
    {
            Lex->ssl_type=SSL_TYPE_ANY;
          }
    break;

  case 2252:

/* Line 1455 of yacc.c  */
#line 12862 "sql_yacc.yy"
    {
            Lex->ssl_type=SSL_TYPE_X509;
          }
    break;

  case 2253:

/* Line 1455 of yacc.c  */
#line 12866 "sql_yacc.yy"
    {
            Lex->ssl_type=SSL_TYPE_NONE;
          }
    break;

  case 2254:

/* Line 1455 of yacc.c  */
#line 12872 "sql_yacc.yy"
    {}
    break;

  case 2256:

/* Line 1455 of yacc.c  */
#line 12877 "sql_yacc.yy"
    {}
    break;

  case 2257:

/* Line 1455 of yacc.c  */
#line 12878 "sql_yacc.yy"
    {}
    break;

  case 2258:

/* Line 1455 of yacc.c  */
#line 12882 "sql_yacc.yy"
    { Lex->grant |= GRANT_ACL;}
    break;

  case 2259:

/* Line 1455 of yacc.c  */
#line 12884 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->mqh.questions=(yyvsp[(2) - (2)].ulong_num);
            lex->mqh.specified_limits|= USER_RESOURCES::QUERIES_PER_HOUR;
          }
    break;

  case 2260:

/* Line 1455 of yacc.c  */
#line 12890 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->mqh.updates=(yyvsp[(2) - (2)].ulong_num);
            lex->mqh.specified_limits|= USER_RESOURCES::UPDATES_PER_HOUR;
          }
    break;

  case 2261:

/* Line 1455 of yacc.c  */
#line 12896 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->mqh.conn_per_hour= (yyvsp[(2) - (2)].ulong_num);
            lex->mqh.specified_limits|= USER_RESOURCES::CONNECTIONS_PER_HOUR;
          }
    break;

  case 2262:

/* Line 1455 of yacc.c  */
#line 12902 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->mqh.user_conn= (yyvsp[(2) - (2)].ulong_num);
            lex->mqh.specified_limits|= USER_RESOURCES::USER_CONNECTIONS;
          }
    break;

  case 2263:

/* Line 1455 of yacc.c  */
#line 12911 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command = SQLCOM_BEGIN;
            lex->start_transaction_opt= 0;
          }
    break;

  case 2264:

/* Line 1455 of yacc.c  */
#line 12916 "sql_yacc.yy"
    {}
    break;

  case 2265:

/* Line 1455 of yacc.c  */
#line 12920 "sql_yacc.yy"
    {}
    break;

  case 2266:

/* Line 1455 of yacc.c  */
#line 12921 "sql_yacc.yy"
    {}
    break;

  case 2267:

/* Line 1455 of yacc.c  */
#line 12926 "sql_yacc.yy"
    { (yyval.num)= (YYTHD->variables.completion_type == 1); }
    break;

  case 2268:

/* Line 1455 of yacc.c  */
#line 12927 "sql_yacc.yy"
    { (yyval.num)=0; }
    break;

  case 2269:

/* Line 1455 of yacc.c  */
#line 12928 "sql_yacc.yy"
    { (yyval.num)=1; }
    break;

  case 2270:

/* Line 1455 of yacc.c  */
#line 12933 "sql_yacc.yy"
    { (yyval.num)= (YYTHD->variables.completion_type == 2); }
    break;

  case 2271:

/* Line 1455 of yacc.c  */
#line 12934 "sql_yacc.yy"
    { (yyval.num)=1; }
    break;

  case 2272:

/* Line 1455 of yacc.c  */
#line 12935 "sql_yacc.yy"
    { (yyval.num)=0; }
    break;

  case 2273:

/* Line 1455 of yacc.c  */
#line 12939 "sql_yacc.yy"
    {}
    break;

  case 2274:

/* Line 1455 of yacc.c  */
#line 12940 "sql_yacc.yy"
    {}
    break;

  case 2275:

/* Line 1455 of yacc.c  */
#line 12945 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command= SQLCOM_COMMIT;
            lex->tx_chain= (yyvsp[(3) - (4)].num); 
            lex->tx_release= (yyvsp[(4) - (4)].num);
          }
    break;

  case 2276:

/* Line 1455 of yacc.c  */
#line 12955 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command= SQLCOM_ROLLBACK;
            lex->tx_chain= (yyvsp[(3) - (4)].num); 
            lex->tx_release= (yyvsp[(4) - (4)].num);
          }
    break;

  case 2277:

/* Line 1455 of yacc.c  */
#line 12963 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command= SQLCOM_ROLLBACK_TO_SAVEPOINT;
            lex->ident= (yyvsp[(5) - (5)].lex_str);
          }
    break;

  case 2278:

/* Line 1455 of yacc.c  */
#line 12972 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command= SQLCOM_SAVEPOINT;
            lex->ident= (yyvsp[(2) - (2)].lex_str);
          }
    break;

  case 2279:

/* Line 1455 of yacc.c  */
#line 12981 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command= SQLCOM_RELEASE_SAVEPOINT;
            lex->ident= (yyvsp[(3) - (3)].lex_str);
          }
    break;

  case 2280:

/* Line 1455 of yacc.c  */
#line 12994 "sql_yacc.yy"
    {}
    break;

  case 2282:

/* Line 1455 of yacc.c  */
#line 13000 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            if (lex->result && 
               (lex->result->get_nest_level() == -1 ||
                lex->result->get_nest_level() == lex->nest_level))
              {
                /* 
                   Only the last SELECT can have INTO unless the INTO and UNION
                   are at different nest levels. In version 5.1 and above, INTO
                   will onle be allowed at top level.
                */
                my_error(ER_WRONG_USAGE, MYF(0), "UNION", "INTO");
                MYSQL_YYABORT;
              }
            if (lex->current_select->linkage == GLOBAL_OPTIONS_TYPE)
            {
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
            /* This counter shouldn't be incremented for UNION parts */
            Lex->nest_level--;
            if (mysql_new_select(lex, 0))
              MYSQL_YYABORT;
            mysql_init_select(lex);
            lex->current_select->linkage=UNION_TYPE;
            if ((yyvsp[(2) - (2)].num)) /* UNION DISTINCT - remember position */
              lex->current_select->master_unit()->union_distinct=
                lex->current_select;
          }
    break;

  case 2283:

/* Line 1455 of yacc.c  */
#line 13030 "sql_yacc.yy"
    {
            /*
              Remove from the name resolution context stack the context of the
              last select in the union.
            */
            Lex->pop_context();
          }
    break;

  case 2284:

/* Line 1455 of yacc.c  */
#line 13040 "sql_yacc.yy"
    { (yyval.num)= 0; }
    break;

  case 2285:

/* Line 1455 of yacc.c  */
#line 13041 "sql_yacc.yy"
    { (yyval.num)= 1; }
    break;

  case 2286:

/* Line 1455 of yacc.c  */
#line 13042 "sql_yacc.yy"
    { (yyval.num)= 1; }
    break;

  case 2287:

/* Line 1455 of yacc.c  */
#line 13046 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            DBUG_ASSERT(lex->current_select->linkage != GLOBAL_OPTIONS_TYPE);
            SELECT_LEX *sel= lex->current_select;
            SELECT_LEX_UNIT *unit= sel->master_unit();
            SELECT_LEX *fake= unit->fake_select_lex;
            if (fake)
            {
              unit->global_parameters= fake;
              fake->no_table_names_allowed= 1;
              lex->current_select= fake;
            }
            thd->where= "global ORDER clause";
          }
    break;

  case 2288:

/* Line 1455 of yacc.c  */
#line 13062 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            thd->lex->current_select->no_table_names_allowed= 0;
            thd->where= "";
          }
    break;

  case 2291:

/* Line 1455 of yacc.c  */
#line 13075 "sql_yacc.yy"
    { (yyval.num)=1; }
    break;

  case 2292:

/* Line 1455 of yacc.c  */
#line 13076 "sql_yacc.yy"
    { (yyval.num)=1; }
    break;

  case 2293:

/* Line 1455 of yacc.c  */
#line 13077 "sql_yacc.yy"
    { (yyval.num)=0; }
    break;

  case 2294:

/* Line 1455 of yacc.c  */
#line 13081 "sql_yacc.yy"
    {
          (yyval.select_lex)= Lex->current_select->master_unit()->first_select();
        }
    break;

  case 2295:

/* Line 1455 of yacc.c  */
#line 13088 "sql_yacc.yy"
    {
          (yyval.select_lex)= (yyvsp[(4) - (5)].select_lex);
        }
    break;

  case 2296:

/* Line 1455 of yacc.c  */
#line 13093 "sql_yacc.yy"
    {
          (yyval.select_lex)= (yyvsp[(4) - (6)].select_lex);
        }
    break;

  case 2297:

/* Line 1455 of yacc.c  */
#line 13098 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            if (!lex->expr_allows_subselect ||
               lex->sql_command == (int)SQLCOM_PURGE)
            {
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
            /* 
              we are making a "derived table" for the parenthesis
              as we need to have a lex level to fit the union 
              after the parenthesis, e.g. 
              (SELECT .. ) UNION ...  becomes 
              SELECT * FROM ((SELECT ...) UNION ...)
            */
            if (mysql_new_select(Lex, 1))
              MYSQL_YYABORT;
          }
    break;

  case 2298:

/* Line 1455 of yacc.c  */
#line 13119 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            /*
              Set the required lock level for the tables associated with the
              current sub-select. This will overwrite previous lock options set
              using st_select_lex::add_table_to_list in any of the following
              rules: single_multi, table_wild_one, load_data, table_alias_ref,
              table_factor.
              The default lock level is TL_READ_DEFAULT but it can be modified
              with query options specific for a certain (sub-)SELECT.
            */
            lex->current_select->
              set_lock_for_tables(lex->current_select->lock_option);

            lex->pop_context();
            SELECT_LEX *child= lex->current_select;
            lex->current_select = lex->current_select->return_after_parsing();
            lex->nest_level--;
            lex->current_select->n_child_sum_items += child->n_sum_items;
            /*
              A subselect can add fields to an outer select. Reserve space for
              them.
            */
            lex->current_select->select_n_where_fields+=
            child->select_n_where_fields;
          }
    break;

  case 2299:

/* Line 1455 of yacc.c  */
#line 13155 "sql_yacc.yy"
    {}
    break;

  case 2300:

/* Line 1455 of yacc.c  */
#line 13157 "sql_yacc.yy"
    {}
    break;

  case 2301:

/* Line 1455 of yacc.c  */
#line 13159 "sql_yacc.yy"
    {}
    break;

  case 2315:

/* Line 1455 of yacc.c  */
#line 13192 "sql_yacc.yy"
    {
            /*
              We have to distinguish missing DEFINER-clause from case when
              CURRENT_USER specified as definer explicitly in order to properly
              handle CREATE TRIGGER statements which come to replication thread
              from older master servers (i.e. to create non-suid trigger in this
              case).
            */
            YYTHD->lex->definer= 0;
          }
    break;

  case 2316:

/* Line 1455 of yacc.c  */
#line 13206 "sql_yacc.yy"
    {
            YYTHD->lex->definer= get_current_user(YYTHD, (yyvsp[(3) - (3)].lex_user));
          }
    break;

  case 2317:

/* Line 1455 of yacc.c  */
#line 13219 "sql_yacc.yy"
    {}
    break;

  case 2318:

/* Line 1455 of yacc.c  */
#line 13221 "sql_yacc.yy"
    {}
    break;

  case 2319:

/* Line 1455 of yacc.c  */
#line 13223 "sql_yacc.yy"
    {}
    break;

  case 2320:

/* Line 1455 of yacc.c  */
#line 13228 "sql_yacc.yy"
    { Lex->create_view_mode= VIEW_CREATE_OR_REPLACE; }
    break;

  case 2321:

/* Line 1455 of yacc.c  */
#line 13233 "sql_yacc.yy"
    { Lex->create_view_algorithm= VIEW_ALGORITHM_UNDEFINED; }
    break;

  case 2322:

/* Line 1455 of yacc.c  */
#line 13235 "sql_yacc.yy"
    { Lex->create_view_algorithm= VIEW_ALGORITHM_MERGE; }
    break;

  case 2323:

/* Line 1455 of yacc.c  */
#line 13237 "sql_yacc.yy"
    { Lex->create_view_algorithm= VIEW_ALGORITHM_TMPTABLE; }
    break;

  case 2324:

/* Line 1455 of yacc.c  */
#line 13242 "sql_yacc.yy"
    { Lex->create_view_suid= VIEW_SUID_DEFAULT; }
    break;

  case 2325:

/* Line 1455 of yacc.c  */
#line 13244 "sql_yacc.yy"
    { Lex->create_view_suid= VIEW_SUID_DEFINER; }
    break;

  case 2326:

/* Line 1455 of yacc.c  */
#line 13246 "sql_yacc.yy"
    { Lex->create_view_suid= VIEW_SUID_INVOKER; }
    break;

  case 2327:

/* Line 1455 of yacc.c  */
#line 13251 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            lex->sql_command= SQLCOM_CREATE_VIEW;
            /* first table in list is target VIEW name */
            if (!lex->select_lex.add_table_to_list(thd, (yyvsp[(3) - (3)].table), NULL, TL_OPTION_UPDATING))
              MYSQL_YYABORT;
          }
    break;

  case 2329:

/* Line 1455 of yacc.c  */
#line 13264 "sql_yacc.yy"
    {}
    break;

  case 2331:

/* Line 1455 of yacc.c  */
#line 13270 "sql_yacc.yy"
    {
              Lex->view_list.push_back((LEX_STRING*)
              sql_memdup(&(yyvsp[(1) - (1)].lex_str), sizeof(LEX_STRING)));
            }
    break;

  case 2332:

/* Line 1455 of yacc.c  */
#line 13275 "sql_yacc.yy"
    {
              Lex->view_list.push_back((LEX_STRING*)
              sql_memdup(&(yyvsp[(3) - (3)].lex_str), sizeof(LEX_STRING)));
            }
    break;

  case 2333:

/* Line 1455 of yacc.c  */
#line 13282 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->parsing_options.allows_variable= FALSE;
            lex->parsing_options.allows_select_into= FALSE;
            lex->parsing_options.allows_select_procedure= FALSE;
            lex->parsing_options.allows_derived= FALSE;
            lex->create_view_select.str= (char *) YYLIP->get_cpp_ptr();
          }
    break;

  case 2334:

/* Line 1455 of yacc.c  */
#line 13291 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= Lex;
            uint len= YYLIP->get_cpp_ptr() - lex->create_view_select.str;
            void *create_view_select= thd->memdup(lex->create_view_select.str, len);
            lex->create_view_select.length= len;
            lex->create_view_select.str= (char *) create_view_select;
            trim_whitespace(thd->charset(), &lex->create_view_select);
            lex->parsing_options.allows_variable= TRUE;
            lex->parsing_options.allows_select_into= TRUE;
            lex->parsing_options.allows_select_procedure= TRUE;
            lex->parsing_options.allows_derived= TRUE;
          }
    break;

  case 2337:

/* Line 1455 of yacc.c  */
#line 13313 "sql_yacc.yy"
    { Lex->create_view_check= VIEW_CHECK_NONE; }
    break;

  case 2338:

/* Line 1455 of yacc.c  */
#line 13315 "sql_yacc.yy"
    { Lex->create_view_check= VIEW_CHECK_CASCADED; }
    break;

  case 2339:

/* Line 1455 of yacc.c  */
#line 13317 "sql_yacc.yy"
    { Lex->create_view_check= VIEW_CHECK_CASCADED; }
    break;

  case 2340:

/* Line 1455 of yacc.c  */
#line 13319 "sql_yacc.yy"
    { Lex->create_view_check= VIEW_CHECK_LOCAL; }
    break;

  case 2341:

/* Line 1455 of yacc.c  */
#line 13336 "sql_yacc.yy"
    { /* $8 */
            Lex->raw_trg_on_table_name_begin= YYLIP->get_tok_start();
          }
    break;

  case 2342:

/* Line 1455 of yacc.c  */
#line 13342 "sql_yacc.yy"
    { /* $12 */
            Lex->raw_trg_on_table_name_end= YYLIP->get_tok_start();
          }
    break;

  case 2343:

/* Line 1455 of yacc.c  */
#line 13347 "sql_yacc.yy"
    { /* $15 */
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            Lex_input_stream *lip= YYLIP;
            sp_head *sp;

            if (lex->sphead)
            {
              my_error(ER_SP_NO_RECURSIVE_CREATE, MYF(0), "TRIGGER");
              MYSQL_YYABORT;
            }

            if (!(sp= new sp_head()))
              MYSQL_YYABORT;
            sp->reset_thd_mem_root(thd);
            sp->init(lex);
            sp->m_type= TYPE_ENUM_TRIGGER;
            sp->init_sp_name(thd, (yyvsp[(3) - (14)].spname));
            lex->stmt_definition_begin= (yyvsp[(2) - (14)].simple_string);
            lex->ident.str= (yyvsp[(7) - (14)].simple_string);
            lex->ident.length= (yyvsp[(11) - (14)].simple_string) - (yyvsp[(7) - (14)].simple_string);

            lex->sphead= sp;
            lex->spname= (yyvsp[(3) - (14)].spname);

            bzero((char *)&lex->sp_chistics, sizeof(st_sp_chistics));
            lex->sphead->m_chistics= &lex->sp_chistics;
            lex->sphead->set_body_start(thd, lip->get_cpp_ptr());
          }
    break;

  case 2344:

/* Line 1455 of yacc.c  */
#line 13377 "sql_yacc.yy"
    { /* $17 */
            LEX *lex= Lex;
            sp_head *sp= lex->sphead;

            lex->sql_command= SQLCOM_CREATE_TRIGGER;
            sp->set_stmt_end(YYTHD);
            sp->restore_thd_mem_root(YYTHD);

            if (sp->is_not_allowed_in_function("trigger"))
              MYSQL_YYABORT;

            /*
              We have to do it after parsing trigger body, because some of
              sp_proc_stmt alternatives are not saving/restoring LEX, so
              lex->query_tables can be wiped out.
            */
            if (!lex->select_lex.add_table_to_list(YYTHD, (yyvsp[(9) - (16)].table),
                                                   (LEX_STRING*) 0,
                                                   TL_OPTION_UPDATING,
                                                   TL_IGNORE))
              MYSQL_YYABORT;
          }
    break;

  case 2345:

/* Line 1455 of yacc.c  */
#line 13410 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            if (is_native_function(thd, & (yyvsp[(4) - (8)].lex_str)))
            {
              my_error(ER_NATIVE_FCT_NAME_COLLISION, MYF(0),
                       (yyvsp[(4) - (8)].lex_str).str);
              MYSQL_YYABORT;
            }
            lex->sql_command = SQLCOM_CREATE_FUNCTION;
            lex->udf.type= UDFTYPE_AGGREGATE;
            lex->stmt_definition_begin= (yyvsp[(2) - (8)].simple_string);
            lex->udf.name = (yyvsp[(4) - (8)].lex_str);
            lex->udf.returns=(Item_result) (yyvsp[(6) - (8)].num);
            lex->udf.dl=(yyvsp[(8) - (8)].lex_str).str;
          }
    break;

  case 2346:

/* Line 1455 of yacc.c  */
#line 13428 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            if (is_native_function(thd, & (yyvsp[(3) - (7)].lex_str)))
            {
              my_error(ER_NATIVE_FCT_NAME_COLLISION, MYF(0),
                       (yyvsp[(3) - (7)].lex_str).str);
              MYSQL_YYABORT;
            }
            lex->sql_command = SQLCOM_CREATE_FUNCTION;
            lex->udf.type= UDFTYPE_FUNCTION;
            lex->stmt_definition_begin= (yyvsp[(1) - (7)].simple_string);
            lex->udf.name = (yyvsp[(3) - (7)].lex_str);
            lex->udf.returns=(Item_result) (yyvsp[(5) - (7)].num);
            lex->udf.dl=(yyvsp[(7) - (7)].lex_str).str;
          }
    break;

  case 2347:

/* Line 1455 of yacc.c  */
#line 13451 "sql_yacc.yy"
    { /* $5 */
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            Lex_input_stream *lip= YYLIP;
            sp_head *sp;
            const char* tmp_param_begin;

            lex->stmt_definition_begin= (yyvsp[(1) - (4)].simple_string);
            lex->spname= (yyvsp[(3) - (4)].spname);

            if (lex->sphead)
            {
              my_error(ER_SP_NO_RECURSIVE_CREATE, MYF(0), "FUNCTION");
              MYSQL_YYABORT;
            }
            /* Order is important here: new - reset - init */
            sp= new sp_head();
            if (sp == NULL)
              MYSQL_YYABORT;
            sp->reset_thd_mem_root(thd);
            sp->init(lex);
            sp->init_sp_name(thd, lex->spname);

            sp->m_type= TYPE_ENUM_FUNCTION;
            lex->sphead= sp;

            tmp_param_begin= lip->get_cpp_tok_start();
            tmp_param_begin++;
            lex->sphead->m_param_begin= tmp_param_begin;
          }
    break;

  case 2348:

/* Line 1455 of yacc.c  */
#line 13483 "sql_yacc.yy"
    { /* $8 */
            Lex->sphead->m_param_end= YYLIP->get_cpp_tok_start();
          }
    break;

  case 2349:

/* Line 1455 of yacc.c  */
#line 13487 "sql_yacc.yy"
    { /* $10 */
            LEX *lex= Lex;
            lex->charset= NULL;
            lex->length= lex->dec= NULL;
            lex->interval_list.empty();
            lex->type= 0;
          }
    break;

  case 2350:

/* Line 1455 of yacc.c  */
#line 13495 "sql_yacc.yy"
    { /* $12 */
            LEX *lex= Lex;
            sp_head *sp= lex->sphead;
            /*
              This was disabled in 5.1.12. See bug #20701
              When collation support in SP is implemented, then this test
              should be removed.
            */
            if (((yyvsp[(11) - (11)].num) == MYSQL_TYPE_STRING || (yyvsp[(11) - (11)].num) == MYSQL_TYPE_VARCHAR)
                && (lex->type & BINCMP_FLAG))
            {
              my_error(ER_NOT_SUPPORTED_YET, MYF(0), "return value collation");
              MYSQL_YYABORT;
            }

            if (sp->fill_field_definition(YYTHD, lex,
                                          (enum enum_field_types) (yyvsp[(11) - (11)].num),
                                          &sp->m_return_field_def))
              MYSQL_YYABORT;

            bzero((char *)&lex->sp_chistics, sizeof(st_sp_chistics));
          }
    break;

  case 2351:

/* Line 1455 of yacc.c  */
#line 13518 "sql_yacc.yy"
    { /* $14 */
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            Lex_input_stream *lip= YYLIP;

            lex->sphead->m_chistics= &lex->sp_chistics;
            lex->sphead->set_body_start(thd, lip->get_cpp_tok_start());
          }
    break;

  case 2352:

/* Line 1455 of yacc.c  */
#line 13527 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            sp_head *sp= lex->sphead;

            if (sp->is_not_allowed_in_function("function"))
              MYSQL_YYABORT;

            lex->sql_command= SQLCOM_CREATE_SPFUNCTION;
            sp->set_stmt_end(thd);
            if (!(sp->m_flags & sp_head::HAS_RETURN))
            {
              my_error(ER_SP_NORETURN, MYF(0), sp->m_qname.str);
              MYSQL_YYABORT;
            }
            if (is_native_function(thd, & sp->m_name))
            {
              /*
                This warning will be printed when
                [1] A client query is parsed,
                [2] A stored function is loaded by db_load_routine.
                Printing the warning for [2] is intentional, to cover the
                following scenario:
                - A user define a SF 'foo' using MySQL 5.N
                - An application uses select foo(), and works.
                - MySQL 5.{N+1} defines a new native function 'foo', as
                part of a new feature.
                - MySQL 5.{N+1} documentation is updated, and should mention
                that there is a potential incompatible change in case of
                existing stored function named 'foo'.
                - The user deploys 5.{N+1}. At this point, 'select foo()'
                means something different, and the user code is most likely
                broken (it's only safe if the code is 'select db.foo()').
                With a warning printed when the SF is loaded (which has to occur
                before the call), the warning will provide a hint explaining
                the root cause of a later failure of 'select foo()'.
                With no warning printed, the user code will fail with no
                apparent reason.
                Printing a warning each time db_load_routine is executed for
                an ambiguous function is annoying, since that can happen a lot,
                but in practice should not happen unless there *are* name
                collisions.
                If a collision exists, it should not be silenced but fixed.
              */
              push_warning_printf(thd,
                                  MYSQL_ERROR::WARN_LEVEL_NOTE,
                                  ER_NATIVE_FCT_NAME_COLLISION,
                                  ER(ER_NATIVE_FCT_NAME_COLLISION),
                                  sp->m_name.str);
            }
            sp->restore_thd_mem_root(thd);
          }
    break;

  case 2353:

/* Line 1455 of yacc.c  */
#line 13583 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_head *sp;

            if (lex->sphead)
            {
              my_error(ER_SP_NO_RECURSIVE_CREATE, MYF(0), "PROCEDURE");
              MYSQL_YYABORT;
            }

            lex->stmt_definition_begin= (yyvsp[(2) - (3)].simple_string);

            /* Order is important here: new - reset - init */
            sp= new sp_head();
            if (sp == NULL)
              MYSQL_YYABORT;
            sp->reset_thd_mem_root(YYTHD);
            sp->init(lex);
            sp->m_type= TYPE_ENUM_PROCEDURE;
            sp->init_sp_name(YYTHD, (yyvsp[(3) - (3)].spname));

            lex->sphead= sp;
          }
    break;

  case 2354:

/* Line 1455 of yacc.c  */
#line 13607 "sql_yacc.yy"
    {
            const char* tmp_param_begin;

            tmp_param_begin= YYLIP->get_cpp_tok_start();
            tmp_param_begin++;
            Lex->sphead->m_param_begin= tmp_param_begin;
          }
    break;

  case 2355:

/* Line 1455 of yacc.c  */
#line 13616 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;

            lex->sphead->m_param_end= YYLIP->get_cpp_tok_start();
            bzero((char *)&lex->sp_chistics, sizeof(st_sp_chistics));
          }
    break;

  case 2356:

/* Line 1455 of yacc.c  */
#line 13624 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;

            lex->sphead->m_chistics= &lex->sp_chistics;
            lex->sphead->set_body_start(thd, YYLIP->get_cpp_tok_start());
          }
    break;

  case 2357:

/* Line 1455 of yacc.c  */
#line 13632 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_head *sp= lex->sphead;

            sp->set_stmt_end(YYTHD);
            lex->sql_command= SQLCOM_CREATE_PROCEDURE;
            sp->restore_thd_mem_root(YYTHD);
          }
    break;

  case 2358:

/* Line 1455 of yacc.c  */
#line 13646 "sql_yacc.yy"
    {
            Lex->sql_command = SQLCOM_XA_START;
          }
    break;

  case 2359:

/* Line 1455 of yacc.c  */
#line 13650 "sql_yacc.yy"
    {
            Lex->sql_command = SQLCOM_XA_END;
          }
    break;

  case 2360:

/* Line 1455 of yacc.c  */
#line 13654 "sql_yacc.yy"
    {
            Lex->sql_command = SQLCOM_XA_PREPARE;
          }
    break;

  case 2361:

/* Line 1455 of yacc.c  */
#line 13658 "sql_yacc.yy"
    {
            Lex->sql_command = SQLCOM_XA_COMMIT;
          }
    break;

  case 2362:

/* Line 1455 of yacc.c  */
#line 13662 "sql_yacc.yy"
    {
            Lex->sql_command = SQLCOM_XA_ROLLBACK;
          }
    break;

  case 2363:

/* Line 1455 of yacc.c  */
#line 13666 "sql_yacc.yy"
    {
            Lex->sql_command = SQLCOM_XA_RECOVER;
          }
    break;

  case 2364:

/* Line 1455 of yacc.c  */
#line 13673 "sql_yacc.yy"
    {
            MYSQL_YYABORT_UNLESS((yyvsp[(1) - (1)].string)->length() <= MAXGTRIDSIZE);
            if (!(Lex->xid=(XID *)YYTHD->alloc(sizeof(XID))))
              MYSQL_YYABORT;
            Lex->xid->set(1L, (yyvsp[(1) - (1)].string)->ptr(), (yyvsp[(1) - (1)].string)->length(), 0, 0);
          }
    break;

  case 2365:

/* Line 1455 of yacc.c  */
#line 13680 "sql_yacc.yy"
    {
            MYSQL_YYABORT_UNLESS((yyvsp[(1) - (3)].string)->length() <= MAXGTRIDSIZE && (yyvsp[(3) - (3)].string)->length() <= MAXBQUALSIZE);
            if (!(Lex->xid=(XID *)YYTHD->alloc(sizeof(XID))))
              MYSQL_YYABORT;
            Lex->xid->set(1L, (yyvsp[(1) - (3)].string)->ptr(), (yyvsp[(1) - (3)].string)->length(), (yyvsp[(3) - (3)].string)->ptr(), (yyvsp[(3) - (3)].string)->length());
          }
    break;

  case 2366:

/* Line 1455 of yacc.c  */
#line 13687 "sql_yacc.yy"
    {
            MYSQL_YYABORT_UNLESS((yyvsp[(1) - (5)].string)->length() <= MAXGTRIDSIZE && (yyvsp[(3) - (5)].string)->length() <= MAXBQUALSIZE);
            if (!(Lex->xid=(XID *)YYTHD->alloc(sizeof(XID))))
              MYSQL_YYABORT;
            Lex->xid->set((yyvsp[(5) - (5)].ulong_num), (yyvsp[(1) - (5)].string)->ptr(), (yyvsp[(1) - (5)].string)->length(), (yyvsp[(3) - (5)].string)->ptr(), (yyvsp[(3) - (5)].string)->length());
          }
    break;

  case 2367:

/* Line 1455 of yacc.c  */
#line 13696 "sql_yacc.yy"
    {}
    break;

  case 2368:

/* Line 1455 of yacc.c  */
#line 13697 "sql_yacc.yy"
    {}
    break;

  case 2369:

/* Line 1455 of yacc.c  */
#line 13701 "sql_yacc.yy"
    { Lex->xa_opt=XA_NONE;        }
    break;

  case 2370:

/* Line 1455 of yacc.c  */
#line 13702 "sql_yacc.yy"
    { Lex->xa_opt=XA_JOIN;        }
    break;

  case 2371:

/* Line 1455 of yacc.c  */
#line 13703 "sql_yacc.yy"
    { Lex->xa_opt=XA_RESUME;      }
    break;

  case 2372:

/* Line 1455 of yacc.c  */
#line 13707 "sql_yacc.yy"
    { Lex->xa_opt=XA_NONE;        }
    break;

  case 2373:

/* Line 1455 of yacc.c  */
#line 13708 "sql_yacc.yy"
    { Lex->xa_opt=XA_ONE_PHASE;   }
    break;

  case 2374:

/* Line 1455 of yacc.c  */
#line 13713 "sql_yacc.yy"
    { Lex->xa_opt=XA_NONE;        }
    break;

  case 2375:

/* Line 1455 of yacc.c  */
#line 13715 "sql_yacc.yy"
    { Lex->xa_opt=XA_SUSPEND;     }
    break;

  case 2377:

/* Line 1455 of yacc.c  */
#line 13720 "sql_yacc.yy"
    {}
    break;

  case 2378:

/* Line 1455 of yacc.c  */
#line 13721 "sql_yacc.yy"
    { Lex->xa_opt=XA_FOR_MIGRATE; }
    break;

  case 2379:

/* Line 1455 of yacc.c  */
#line 13726 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_INSTALL_PLUGIN;
            lex->comment= (yyvsp[(3) - (5)].lex_str);
            lex->ident= (yyvsp[(5) - (5)].lex_str);
          }
    break;

  case 2380:

/* Line 1455 of yacc.c  */
#line 13736 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_UNINSTALL_PLUGIN;
            lex->comment= (yyvsp[(3) - (3)].lex_str);
          }
    break;



/* Line 1455 of yacc.c  */
#line 36176 "sql_yacc.cc"
      default: break;
    }
  YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);

  YYPOPSTACK (yylen);
  yylen = 0;
  YY_STACK_PRINT (yyss, yyssp);

  *++yyvsp = yyval;

  /* Now `shift' the result of the reduction.  Determine what state
     that goes to, based on the state we popped back to and the rule
     number reduced by.  */

  yyn = yyr1[yyn];

  yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
  if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
    yystate = yytable[yystate];
  else
    yystate = yydefgoto[yyn - YYNTOKENS];

  goto yynewstate;


/*------------------------------------.
| yyerrlab -- here on detecting error |
`------------------------------------*/
yyerrlab:
  /* If not already recovering from an error, report this error.  */
  if (!yyerrstatus)
    {
      ++yynerrs;
#if ! YYERROR_VERBOSE
      yyerror (YY_("syntax error"));
#else
      {
	YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
	if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
	  {
	    YYSIZE_T yyalloc = 2 * yysize;
	    if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
	      yyalloc = YYSTACK_ALLOC_MAXIMUM;
	    if (yymsg != yymsgbuf)
	      YYSTACK_FREE (yymsg);
	    yymsg = (char *) YYSTACK_ALLOC (yyalloc);
	    if (yymsg)
	      yymsg_alloc = yyalloc;
	    else
	      {
		yymsg = yymsgbuf;
		yymsg_alloc = sizeof yymsgbuf;
	      }
	  }

	if (0 < yysize && yysize <= yymsg_alloc)
	  {
	    (void) yysyntax_error (yymsg, yystate, yychar);
	    yyerror (yymsg);
	  }
	else
	  {
	    yyerror (YY_("syntax error"));
	    if (yysize != 0)
	      goto yyexhaustedlab;
	  }
      }
#endif
    }



  if (yyerrstatus == 3)
    {
      /* If just tried and failed to reuse lookahead token after an
	 error, discard it.  */

      if (yychar <= YYEOF)
	{
	  /* Return failure if at end of input.  */
	  if (yychar == YYEOF)
	    YYABORT;
	}
      else
	{
	  yydestruct ("Error: discarding",
		      yytoken, &yylval);
	  yychar = YYEMPTY;
	}
    }

  /* Else will try to reuse lookahead token after shifting the error
     token.  */
  goto yyerrlab1;


/*---------------------------------------------------.
| yyerrorlab -- error raised explicitly by YYERROR.  |
`---------------------------------------------------*/
yyerrorlab:

  /* Pacify compilers like GCC when the user code never invokes
     YYERROR and the label yyerrorlab therefore never appears in user
     code.  */
  if (/*CONSTCOND*/ 0)
     goto yyerrorlab;

  /* Do not reclaim the symbols of the rule which action triggered
     this YYERROR.  */
  YYPOPSTACK (yylen);
  yylen = 0;
  YY_STACK_PRINT (yyss, yyssp);
  yystate = *yyssp;
  goto yyerrlab1;


/*-------------------------------------------------------------.
| yyerrlab1 -- common code for both syntax error and YYERROR.  |
`-------------------------------------------------------------*/
yyerrlab1:
  yyerrstatus = 3;	/* Each real token shifted decrements this.  */

  for (;;)
    {
      yyn = yypact[yystate];
      if (yyn != YYPACT_NINF)
	{
	  yyn += YYTERROR;
	  if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
	    {
	      yyn = yytable[yyn];
	      if (0 < yyn)
		break;
	    }
	}

      /* Pop the current state because it cannot handle the error token.  */
      if (yyssp == yyss)
	YYABORT;


      yydestruct ("Error: popping",
		  yystos[yystate], yyvsp);
      YYPOPSTACK (1);
      yystate = *yyssp;
      YY_STACK_PRINT (yyss, yyssp);
    }

  *++yyvsp = yylval;


  /* Shift the error token.  */
  YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);

  yystate = yyn;
  goto yynewstate;


/*-------------------------------------.
| yyacceptlab -- YYACCEPT comes here.  |
`-------------------------------------*/
yyacceptlab:
  yyresult = 0;
  goto yyreturn;

/*-----------------------------------.
| yyabortlab -- YYABORT comes here.  |
`-----------------------------------*/
yyabortlab:
  yyresult = 1;
  goto yyreturn;

#if !defined(yyoverflow) || YYERROR_VERBOSE
/*-------------------------------------------------.
| yyexhaustedlab -- memory exhaustion comes here.  |
`-------------------------------------------------*/
yyexhaustedlab:
  yyerror (YY_("memory exhausted"));
  yyresult = 2;
  /* Fall through.  */
#endif

yyreturn:
  if (yychar != YYEMPTY)
     yydestruct ("Cleanup: discarding lookahead",
		 yytoken, &yylval);
  /* Do not reclaim the symbols of the rule which action triggered
     this YYABORT or YYACCEPT.  */
  YYPOPSTACK (yylen);
  YY_STACK_PRINT (yyss, yyssp);
  while (yyssp != yyss)
    {
      yydestruct ("Cleanup: popping",
		  yystos[*yyssp], yyvsp);
      YYPOPSTACK (1);
    }
#ifndef yyoverflow
  if (yyss != yyssa)
    YYSTACK_FREE (yyss);
#endif
#if YYERROR_VERBOSE
  if (yymsg != yymsgbuf)
    YYSTACK_FREE (yymsg);
#endif
  /* Make sure YYID is used.  */
  return YYID (yyresult);
}



